Ścieżka dostępu do pliku na innym komputerze

0

Mam problem potrzebuję "zaaktualizować" dane do moje programu z jednego komputera na niestety przy próbie przypisania danych z komputera który jest w sieci na inny komputer kompilator zgłasza błąd .
Odmowa dostępu do ścieżki „\\192.168.1.16\C$\Program Files\Haft Anel\pliki_akt\index.txt”. Czy ścieżka do innego komputera w sieci jest zdefiniowana oke ?

kod funkcji

/*wczytanie z pliku indexu*/
            StreamReader sr = new StreamReader("\\\\192.168.1.16/C$/Program Files/Haft Anel/pliki_akt/index.txt");
            index = int.Parse(sr.ReadLine());
            sr.Close();
            /*wczytywanie z pliku indexu2*/
            StreamReader sr2 = new StreamReader("\\\\192.168.1.16/C$/Program Files/Haft Anel/pliki_akt/index2.txt");
            index2 = int.Parse(sr2.ReadLine());
            sr2.Close();
            /*wczytanie z pliku tablicy2*/
            StreamReader sr3 = new StreamReader("\\\\192.168.1.16/C$/Program Files/Haft Anel/pliki_akt/tablica2.txt");
            for (int i = 0; i < tab2.Length; i++)
            {
                tab2[i].numer_wzoru2 = sr3.ReadLine();
                tab2[i].data_produkcja = sr3.ReadLine();
                tab2[i].ile_produkcja = int.Parse(sr3.ReadLine());
                tab2[i].data_wejscia_magazyn = sr3.ReadLine();
                tab2[i].ile_wejscia_magazyn = int.Parse(sr3.ReadLine());
                tab2[i].data_wyjscie_magazyn = sr3.ReadLine();
                tab2[i].ile_wyjscie_magazyn = int.Parse(sr3.ReadLine());
                tab2[i].cena = double.Parse(sr3.ReadLine());
            }
            sr3.Close();
            /*wczytanie z pliku tablicy*/
            StreamReader sr1 = new StreamReader("\\\\192.168.1.16/C$/Program Files/Haft Anel/pliki_akt/tablica.txt");
            for (int i = 0; i < tab.Length; i++)
            {
                tab[i].numer_wzoru = sr1.ReadLine();
                tab[i].nazwa_wzoru = sr1.ReadLine();
                tab[i].cena_hurtowa_wzoru = double.Parse(sr1.ReadLine());
                tab[i].cena_detaliczna_wzoru = double.Parse(sr1.ReadLine());
                tab[i].uwaga_do_wzoru = sr1.ReadLine();
                tab[i].ilosc_wzoru = int.Parse(sr1.ReadLine());
            }
            sr1.Close();
            MessageBox.Show("Dane zostały zaktualizowane", "Import danych");

Był bym wdzięczny za pomoc w rozwiązaniu problemu

0

Katalog jest udostępniony w sieci?
Masz w ogóle uprawnienia do tego katalogu?

0

tak katalog, został udostępniony w sieci, no jeśli mogę zmienić to co jest zapisane w tych plikach z innego komputera to zakładam że mam uprawnienia :/ mimo iż kompilator twierdzi inaczej .

0

A co do tego ma kompilator?

Po pierwsze program musisz uruchomić w kontekście użytkownika, który ma uprawnienia do zapisu w tym udziale sieciowym.
Po drugie, obstawiam, że to nie wystarczy, ten użytkownik musi być też lokalnym administratorem na maszynie 192.168.1.16.
I tak nie ma pewności, że to się uda... No bo po co w ogóle pisać coś do Program Files przez sieć? Chyba jeszcze nikt na to nie wpadł.

0

Spróbuj z normalnym katalogiem, bo prawie na pewno UAC ci się wtrąca.

0

Prosił bym o ciut wyrozumiałości bo w sprawach "sieci" nie jestem jakimś ekspertem .

somekind napisał(a):

Po pierwsze program musisz uruchomić w kontekście użytkownika, który ma uprawnienia do zapisu w tym udziale sieciowym.
Program uruchamiam na (windows7) na komputerze który ma pełen dostęp do danych na drugim komputerze (windows xp) mogę w nim wszystko zmieniać z komputera pierwszego. Czy o taki dostęp chodzi ?

somekind napisał(a):

Po drugie, obstawiam, że to nie wystarczy, ten użytkownik musi być też lokalnym administratorem na maszynie 192.168.1.16.
Co przez to rozumiesz, tzn jak to sprawdzić ?

somekind napisał(a):

I tak nie ma pewności, że to się uda... No bo po co w ogóle pisać coś do Program Files przez sieć? Chyba jeszcze nikt na to nie wpadł.
Odpowiedzi i moja potrzeba jest bardzo prosta. Ponieważ mam potrzebę aktualizacji danych tego programu który znajduje się na 1wszym komputerze z komputera drugiego. A owy program jest w Program Files.

I tu moje pytanie, jeśli dobrze zrozumiałem gdybym owy program umieścił np poza Program Files, mogło by nie być takiego problemu ?

0
maniek910 napisał(a):

Program uruchamiam na (windows7) na komputerze który ma pełen dostęp do danych na drugim komputerze (windows xp) mogę w nim wszystko zmieniać z komputera pierwszego. Czy o taki dostęp chodzi ?

Tak, chodzi o taki dostęp. Tylko to nie komputer ma dostęp do drugiego komputera, ale użytkownik do zasobów, które na drugim komputerze zostały mu udostępnione.

Co przez to rozumiesz, tzn jak to sprawdzić ?

Chodzi mi o to, żeby użytkownik, na którym się łączysz, był administratorem na komputerze docelowym. (Co jest oczywiście raczej niebezpieczne, i lepiej tego nie robić.) Sprawdź można w Narzędzia Administracyjne -> Zarządzanie Komputerem -> gałąź Użytkownicy i grupy lokalne -> węzeł Grupy -> Administratorzy -> sekcja Członkowie.

I tu moje pytanie, jeśli dobrze zrozumiałem gdybym owy program umieścił np poza Program Files, mogło by nie być takiego problemu ?

Problemu by nie było, gdyby dane nie siedziały w Program Files. Program Files to miejsce na programy, a nie na dane.

1 użytkowników online, w tym zalogowanych: 0, gości: 1