Hallo community,
mein C#-Updater holt sich vom Netzwerk Informationen über eine Datei (z.B. Version) und kopiert sie anschließend.
Unter XP funktioniert das problemlos.
Unter Vista allerdings bekomme ich eine "System.IO.DirectoryNotFoundException", wenn ich versuche, auf die im Verzeichnis, in dem die Datei liegt, existierenden Dateien mit Directory.GetFiles() zuzugreifen. Ich kann die entsprechende Datei also nicht vom Netzwerk kopieren. Per "Hand", also im Explorer funktioniert das allerdings. Meine Anwendung wird mit Administratorenrechten vom Desktop aus gestartet.
Hat jemand eine Idee, wieso der Netzwerkzugriff per Programm aus scheitert?
Gruß,
Dux
Danke schonmal für die Anregungen.
Das Netzlaufwerk ist gemappt und wird unter dem gleichen Benutzer wie der Updater ausgeführt, d.h. daran liegt es nicht.
Problem hat sich erledigt. Ich habe die Adminrechte für den Updater entzogen (!) und es funktioniert jetzt. Wieso das so ist, weiß ich nicht.
Trotzdem danke für die Hilfe.
Dux
Kommt der Fehler beim Zugriff auf die Datei auf dem Netzlaufwerk oder beim Speichern/Anlegen der ZielDatei auf dem lokalen Rechner?
Bei zweiterem, wo speicherst du die Datei?
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
evtl hat der admin benutzer keine rechte für die ordner auf dem netzlaufwerk?
Doch, die Rechte hatte er.
Kommt der Fehler beim Zugriff auf die Datei auf dem Netzlaufwerk oder beim Speichern/Anlegen der ZielDatei auf dem lokalen Rechner?
Bei zweiterem, wo speicherst du die Datei?
Letzeres. Die Datei wird in einem Ordner auf dem Desktop gespeichert.
Wie kommst du an den Pfad zum Desktop ran?
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
Wie kommst du an den Pfad zum Desktop ran?
Über Parameter, den man dem Updater übergibt.
Wenn du hier hilfe erwartest, solltest du auch mitspielen. Es macht keinen Spaß dir alles aus der nase ziehen zu müssen. Dein letzter Satz ist so aussagekräftig wie ein Sackreisnudeln.
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
Wenn du hier hilfe erwartest, solltest du auch mitspielen. Es macht keinen Spaß dir alles aus der nase ziehen zu müssen. Dein letzter Satz ist so aussagekräftig wie ein Sackreisnudeln.
Wenn ich wüsste, in welchem Umkreis sich das Problem bewegen würde, könnte ich auch Aussagen zu möglicherweise relevanten Informationen geben. Ich bin dankbar für jede Hilfe, aber solche Vergleiche wie dein letzter Satz sind fehl am Platz.
Nochmal zum Verständnis:
Das Programm, das geupdatet werden soll, übergibt dem Updater Parameter. Einer davon ist der Ort des Quellprogramms, in dem Fall der Desktop.
Arbeitest du mit LW-Buchstaben oder UNC-Pfad? Letzteres würde ich empfehlen. Ist der Desktop von AllUsers oder individuel?
**:::
Ich benutze LW-Buchstaben, UNC hab ich aber auch schon probiert. Ob der Desktop Allusers ist oder nicht, weiß ich gerade nicht, ich kann es auch gerade leider nicht testen. Ich reich es nach, sobald ich wieder Zugriff auf den Rechner hab.
Environment.SpecialFolder(SpecialFolder.Desktop) könnte dein Problem lösen
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
Aber es ist ja nicht immer der Desktop. Der Pfad, an dem der Updater die Dateien schreiben/kopieren soll wird über Parameter dem Updater übergeben.
Dann liegt halt ein Problem mit deinen Parametern oder deiner Übergabe vor!
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
Unter XP gibt es den Ordner_Dokumente und Einstellungen_ unter Vista nicht. Den Ordner Programme gibts beispielsweise auch nicht. Nimm die entsprechende richtigen Pfade aus Environment
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...