2012-04-05 13 views
-2

Ich weiß, dass es viele Antworten zu dieser Frage gibt, aber ich habe noch keine Lösung gefunden.Keine Berechtigungen in Datei schreiben

Dies ist eine WPF-Anwendung, die von meinem Desktop aus ausgeführt wird und ich der einzige Benutzer dieses Computers bin.

Ich habe versucht zu Desktop speichern, TEMP, C :, Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

Aber keiner der Verzeichnisse ich versucht habe funktioniert, so bin ich ein wenig verloren/verwirrt.

FileStream file = new FileStream("C:\\Users\\<username>\\AppData\\Local\\Temp",FileMode.OpenOrCreate, 
        FileAccess.Write, 
        FileShare.ReadWrite); 

StreamWriter sr = new StreamWriter(file); 
sr.WriteLine(data); 

sr.Close(); 

Edit:

-Code Fehler, sorry, ich es jetzt dachte:

StreamWriter sr = new StreamWriter("C:\\Users\\Mike\\AppData\\Local\\Temp\\test.txt"); 
sr.WriteLine(data); 
sr.Close(); 
+2

Sorry, meine Kristallkugel für Reparaturen in ist. Kannst du klarstellen, dass "nichts funktioniert"? – mdm

+0

@mdm - Ich weiß nicht, welches Verzeichnis ich verwenden sollte, um eine Datei zu schreiben, da keines der Verzeichnisse, die ich ausprobiert habe, funktioniert. – Michael

+0

Sie versuchen, eine Datei mit dem Namen Temp im lokalen Verzeichnis zu erstellen? ist es beabsichtigt? – wiero

Antwort

0

Wenn Sie einige Datei für Ihre Anwendung auf dem Benutzer-PC gespeichert müssen die beste Option, dies zu tun ist im AppData-Ordner. Hier werden alle Programme shoud ihre temporären Dateien schreiben (egal, dass evryone nicht verwenden) Sie können darauf zugreifen, indem in% AppData% im Startmenü Lauflinie und wie dieses eingeben:

Environment.SpecialFolder.ApplicationData 

in Ihrem C# -Anwendung . Hoffe das hilft dir.

0

Es gibt eine hohe Wahrscheinlichkeit, dass Ihr lokaler Ordner einen Ordner namens "TEMP" enthält. Dies schlägt mit Ihrem neuen FileStream fehl. Außerdem sollten Sie einen echten Benutzernamen für den 'Benutzernamen' festlegen, aber dies ist wahrscheinlich nur ein Text, der von woanders kopiert wurde.

versuchen jedoch auf diese Weise

string destPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 
string destFile = Path.Combine(destPath, "myTempFile.txt"); 
FileStream file = new FileStream(destFile,FileMode.OpenOrCreate,FileAccess.Write, FileShare.ReadWrite); 
0

Ihre Datei schreiben wie diese

//this is what you want to write 
    string whatiWantToWrite = "Hello, i am a noob!"; 
     //This is how you write your file 
        System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\\path\\to\\Desktop\\myfile.txt"); 
        file.WriteLine(whatiWantToWrite); 
        file.Close(); 
Verwandte Themen