2016-05-08 10 views
1

Ich bin ein Neuling. Ich habe ein StreamWriter-Objekt erstellt, um Text in einer Datei zu erstellen und zu speichern. Das Schreiben wie folgt vorgeht:Ich kann keine Datei sehen, die ich mit StreamWriter erstellt habe. C#

StreamWriter two = new StreamWriter(@"C:\two.txt", true); 
two.WriteLine("Some Stuff"); 
two.Close(); 

Und dann habe ich auch ein Streamobjekt, so zeigt das Programm den Inhalt der Datei auf der Konsole:

StreamReader two2 = new StreamReader(@"C:\two.txt");               
Console.WriteLine(two.ReadToEnd()); 
two2.Close(); 

Jedes Mal, wenn ich das Programm ausführen, Die Ausgabe auf der Konsole ist korrekt und der Text in der WriteLine-Methode wird angefügt. Aber wenn ich C: mit Windows-Datei-Explorer besuche, ist die Datei two.txt nicht da.

Wo ist die Datei?

P.S. Wenn ich die Adresse ändere, zu der ich die Datei speichern möchte, sagen wir E: zum Beispiel, alles funktioniert perfekt, und ich kann die Datei in E: mit Windows-Datei-Explorer sehen. Offensichtlich gibt es also etwas Besonderes mit C: geht weiter.

+1

für c-Laufwerk gibt es einige Sicherheitseinschränkungen, verwenden Sie besser Benutzer AppData-Ordner für SVE-Datei – Mostafiz

+0

Verwenden Sie immer Flush() -Methode vor dem Schließen einer Schreibdatei, um sicherzustellen, dass alle Daten geschrieben werden. – jdweng

+0

Ich würde eher sagen, immer IDisposable Ressourcen wie Streams und Leser in 'using' Anweisungen zu verpacken. –

Antwort

-1

Ich fand die Antwort, nach der Suche mit Windows Search.

Die Datei wurde unter C: \ Benutzer \ Benutzername \ AppData \ Local \ VirtualStore gefunden. Ich würde jedoch eine Benachrichtigung erwarten, vielleicht eine Ausnahme, etwas, um mir zu sagen, dass dies passiert ist.

+0

Nun, dieses Thema ist fast so, als würde man über Religion oder Schulbezirke diskutieren. Wirf eine Ausnahme wegen der Sicherheit neuerer Betriebssysteme aus und du brichst alte Anwendungen. Ja, es wäre "nett" zu wissen, ob es verschoben wurde, aber bis Sie mit anderen Anwendungen interagieren, ist das nicht wirklich ein Problem. Lohnenswert: https://msdn.microsoft.com/en-us/library/3ak841sy(v=vs.110).aspx –

+0

Auch, wenn Sie in Ihrer Anwendung "suchen" müssen, nicht Hard-Code Ihren obigen Pfad. Verwenden Sie die Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData) -Funktion, um die Umgebungsvariable abzurufen, da jedes System unterschiedlich sein kann und sicherlich unterschiedliche Benutzer haben wird. –

Verwandte Themen