webentwicklung-frage-antwort-db.com.de

Zugriff auf den Pfad verweigert Fehler in C #

Ich habe einen ähnlichen Beitrag gelesen, aber ich kann das Problem nicht herausfinden.

Ich habe die Windows-Berechtigungen geändert und die Routen geändert.

Wenn ich versuche, eine Datei zu speichern, wird mir die Ausnahme ausgelöst: 

Zugang zum Pfad **** verweigert.

string route="D:\\";
FileStream fs = new FileStream(route, FileMode.Create); <--here is the problem
        StreamWriter write = new StreamWriter(fs);
        patient person = new patient();
        patient.name = textBox1.Text;
        patient.name2 = textBox2.Text;
39
aerojun

Sie versuchen, ein FileStream-Objekt für ein Verzeichnis (Ordner) zu erstellen. Geben Sie einen Dateinamen an (z. B. @ "D:\test.txt"), und der Fehler wird behoben.

Übrigens würde ich vorschlagen, dass Sie den StreamWriter-Konstruktor verwenden, der als zweiten Parameter eine Encoding-Funktion verwendet, da Sie sonst möglicherweise eine unangenehme Überraschung erleben, wenn Sie versuchen, die gespeicherte Datei später zu lesen (mit StreamReader).

107
Alan

Haben Sie versucht, einen Dateinamen anzugeben?

z.B:

string route="D:\\somefilename.txt";
10
Renato Gama

tl; dr-Version: Stellen Sie sicher, dass Sie nicht versuchen, eine im Dateisystem als schreibgeschützt markierte Datei im Lese-/Schreibmodus zu öffnen.

Ich bin auf diesen Fehler gestoßen, als ich versuche, eine XML-Datei einzulesen ... Ich habe festgestellt, dass dieser Fehler unter bestimmten Umständen (siehe unten) für eine Datei generiert wird, obwohl der Pfad und der Dateiname korrekt sind.

Dateidetails:

  • Der Pfad und der Dateiname sind gültig, die Datei existiert
  • Sowohl das Dienstkonto als auch der angemeldete Benutzer verfügen über Vollzugriffsberechtigungen für die Datei und den vollständigen Pfad
  • Die Datei ist als schreibgeschützt markiert
  • Es wird unter Windows Server 2008 R2 ausgeführt
  • Der Pfad zur Datei verwendete lokale Laufwerksbuchstaben, nicht den UNC-Pfad

Beim Versuch, die Datei programmgesteuert zu lesen, wurde beim Ausführen des gleichen Codes Folgendes beobachtet:

  • Wenn die Datei als angemeldeter Benutzer ausgeführt wird, wird die Datei fehlerfrei gelesen
  • Beim Ausführen des Dienstkontos wird beim Versuch, die Datei zu lesen, der Fehler "Zugriff wurde verweigert" ohne Details angezeigt

Um dies zu beheben, musste ich den Methodenaufruf von der Standardeinstellung (Öffnen als RW) auf Öffnen der Datei als RO ändern. Nachdem ich diese Änderung vorgenommen hatte, wurde kein Fehler mehr angezeigt.

5
Taegost

Sie haben keine Berechtigung zum Zugriff auf die Datei. Bitte überprüfen Sie, ob Sie auf die Datei in diesem Laufwerk zugreifen können.

string route= @"E:\Sample.text";
FileStream fs = new FileStream(route, FileMode.Create);

Sie müssen den Dateinamen angeben, um .. .. zu erstellen. Bitte versuchen Sie es, jetzt können Sie erstellen.

1
chennaiah.P

Wenn das Problem weiterhin besteht, ändern Sie das Dateiattribut in:

File.SetAttributes(yourfile, FileAttributes.Normal);
0
CPJ