2012-11-05 5 views
7

Próbuję odczytać plik z telefonu z systemem Android do udziału Windows. Używam teraz StreamWriter, jak poniżej:Udział sieciowy/klient SMB

StreamWriter outfile = new StreamWriter(@"\\10.16.68.253\sam\AllTxtFiles.txt"); 
outfile.WriteLine("TESTGENREOIADNIWAN"); 

Ale dostaję odmowę dostępu. Już dodałem pozwolenie do manifestu. I testowałem udział za pomocą ES File Explorer (z dostępem dla wszystkich). Użyłem tych samych linii kodu w aplikacji WPF i działa dobrze, więc mój problem dotyczy aplikacji dla systemu Android.

Próbowałem już zmienić ciąg połączenia, taki jak ES, smb: //10.16.68.253/sam/AllTxtFiles.txt, ale bez powodzenia.

Ktoś to osiągnął?

Tks!

Odpowiedz

1

dla mnie musiałem ustawić ciąg znaków taki jak "smb: // nazwa_użytkownika: hasło @ lokalne ip /" dla katalogu głównego udziału Windows mojego serwera.

1

Musisz upewnić się, że połączenie z udziałem SMB zostało uwierzytelnione przed próbą uzyskania dostępu do plików. Do tego celu należy użyć wywołań API, ponieważ te czynności są wykonywane w warstwie Win32 poza zarządzanym kodem.

Oto początek:

http://www.pinvoke.net/default.aspx/mpr/WNetAddConnection.html

0

Czy jesteś pewien, że są zdolne do odczytu/zapisu plików przy użyciu ESFileExplorer z uprawnieniami każdemu dostęp? Windows to bardzo bezpieczny system operacyjny. Musisz przyznać uprawnienia do określonego profilu. Przykład:

  1. Utwórz nową nazwę profilu w oknach.
  2. Nadaj tej nowej nazwie profilu hasło. (musi mieć hasło, aby coś udostępnić)
  3. Daj uprawnienia do folderu lub plików, aby udostępnić dostęp do tego profilu za pomocą hasła.
  4. Dostęp do folderu lub plików za pomocą smb wraz z nazwą użytkownika i hasłem profilu. Takich jak "smb: // nazwa_użytkownika: hasło @ Local IP"

    StreamWriter outfile = new StreamWriter(smb:\\username:[email protected]"\\10.16.68.253\sam\AllTxtFiles.txt"); 
    outfile.WriteLine("TESTGENREOIADNIWAN");