2010-12-06 3 views
3

Ich versuche, eine Datei mit einem Namen zu erstellen, die das Datum "heute" als Teil des Namens mithilfe der folgenden Syntax nehmen würde:Nicht möglich, eine Datei mit einem Variablennamen mit Filestream-Konstruktor (C#) zu erstellen

private static FileStream fs = new FileStream(@"C:\Test\log" + DateTime.Now.ToShortDateString() + ".txt", FileMode.OpenOrCreate, FileAccess.Write); 

Es scheint jedoch, dass Filestream keinen variablen Pfad nehmen wird ... Was wäre ein besserer Ansatz dazu?

Thx!

+0

Haben Sie einen Fehler erhalten? Was lässt dich denken, dass es keinen variablen Weg nehmen kann? – Samuel

Antwort

5

Das Problem ist, dass Sie einen Pfad mit eingebetteten Schrägstrichen generieren, die ToShortDateString() für die Kultur en-US zurückgibt. In Ihrem Beispiel versucht es, eine Datei C:\Test\log12/6/2010.txt zu öffnen, und ich stelle mir vor, dass der Ordner C:\Test\log12\6 nicht existiert.

Versuchen Sie, etwas wie DateTime.Now.ToString("yyyyMMdd") zu verwenden, um Ihre Dateien stattdessen mit einem Datum zu versehen.

1

HALLO Aidenn,

Die prolem wird Datei-Stream nicht. So erstellen Sie den Dateinamen. Wenn Sie den Dateinamen in eine Variable eingeben, können Sie sie sehen. Hier ist, wie es aussieht:

"C: \ Test \ log12/5/2010.txt"

Sehen Sie, wie die Methode ToShortDateString() das Zeichen '/'? Das sind gültige Verzeichnistrennzeichen. Der Win32-Aufruf der unteren Ebene zu CreateFile() schlägt daher fehl, da das Verzeichnis "log12" und "5" nicht gefunden werden kann.

Sie müssen einen Dateinamen erstellen, der keine ungültigen Dateinamen enthält.

Siehe diesen Artikel Naming Files, Paths, and Namespaces auf MSDN.

-foredecker

Verwandte Themen