Der Versuch, Directory.Move aufzurufen, führt zu einem Fehler, der den Zugriff verweigertC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Der Versuch, Directory.Move aufzurufen, führt zu einem Fehler, der den Zugriff verweigert

Post by Anonymous »

Das ist etwas knifflig und ich hoffe, dass ich einen Einblick in die Funktionsweise der in C# integrierten Directory.Move-Funktion gewinnen kann (oder funktionieren sollte). Ich habe ein Programm geschrieben, das eine Liste von Ordnernamen, die älter als ein bestimmtes Datum sind, in eine DirectoryInfo-Liste einfügt, die es durchläuft, um den Ordner an einen anderen Ort zu verschieben.

Code: Select all

foreach (DirectoryInfo temp in toBeDeleted) {
filecheck.WriteLine(temp.Name);
Directory.Move(temp.FullName, @"T:\Transactiondeletions\" + counter + "\\" + temp.Name);
}
Wobei temp.Fullname so etwas wie T:\UK\DATA\386\trans\12345678.16 ist
Wenn ich jedoch das Programm ausführe, erhalte ich die Fehlermeldung „Zugriff verweigert“.
Image

Code: Select all

T:
ist in diesem Fall etwa 10.11.12.13\Data2$
Ich habe ein anderes zugeordnetes Laufwerk, U:, das sich auf derselben IP wie 10.11.12.13\Data3$ befindet und genau dieselbe Verzeichnisstruktur hat.
Der Clou ist, dass mein Programm auf dem U-Laufwerk einwandfrei funktioniert, aber nicht auf dem T-Laufwerk. Ich habe sowohl den Laufwerksbuchstaben in meinem Code als auch den tatsächlichen vollständigen Pfad mit IP ausprobiert, und es funktioniert immer noch einwandfrei auf dem U-Laufwerk, aber nicht auf dem T-Laufwerk.
Wenn mein Programm auf dem T-Laufwerk versucht, einen Ordner zu verschieben, wird „Zugriff verweigert“ angezeigt.
Es funktioniert jedoch einwandfrei, wenn:
  • Ich verschiebe den Ordner manuell von Hand
  • Ich verwende eine Verzeichniskopie + Directory.Delete statt Directory.Move
Irgendwelche Ideen? Ich kann nicht herausfinden, warum es hier nicht funktioniert, obwohl ich die Dateien manuell verschieben kann. Ich habe versucht, die EXE-Datei manuell und als Administrator und auch als Kollege auszuführen, aber das Ergebnis ist das gleiche.
Ich dachte, es könnte damit zusammenhängen, dass ein StreamWriter noch geöffnet ist (Dateiprüfung), aber ich habe bereits versucht, diesen Teil des Codes zu verschieben, bis ich den StreamWriter schließe, aber es treten dieselben Fehler auf, sodass ich diese Möglichkeit „ausgeschlossen“ habe.
Jeder Rat wäre Ich weiß das sehr zu schätzen und stelle bei Bedarf gerne weitere benötigte Informationen zur Verfügung.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post