string filename = DateTime.Today.ToString() + ".csv";
if(!File.Exists(filename))
File.Create(filename);
我認爲這將工作,但它會拋出'格式不支持'的錯誤。我只想要在我的.exe目錄中創建一個csv如何根據日期創建文件?
string filename = DateTime.Today.ToString() + ".csv";
if(!File.Exists(filename))
File.Create(filename);
我認爲這將工作,但它會拋出'格式不支持'的錯誤。我只想要在我的.exe目錄中創建一個csv如何根據日期創建文件?
這是因爲DateTime.Today.ToString()
包含一個斜槓,這是不作爲Windows文件名的一部分有效。
你可以,但是,這樣做:DateTime.Now.ToString("yyyyMMdd")
我認爲問題是將DateTime轉換爲字符串將生成具有無效文件名字符的字符串,例如冒號(:),這將導致創造失敗。
您可能想要使用格式字符串來控制生成的文件名。例如
string filename = DateTime.Today.ToString("yyyy-MM-dd") + ".csv";
您的日期有斜線的話,試試這個,而不是
string filename = Datetime.Now.Ticks.ToString() + ".csv";
我猜你的語言環境有/
/:
(或類似的混亂字符)在日期格式。您應指定一個明確的格式 - "yyyy MM dd"
例如:
string filename = DateTime.Today.ToString("yyyy MM dd",
CultureInfo.InvariantCulture) + ".csv";
大家都已經指出的那樣,默認則DateTime.ToString()的格式無效字符它(幾乎任何區域設置),讓
string filename = DateTime.Now.ToString() + ".csv";
產生一個像2/18/2011 4:26:48 PM.csv
「文件名」 - 如果你想要一個基於日期時間命名這是無效的
,嘗試
string filename = DateTime.Now.ToString("yyyyMMddhhmmss") + ".csv";
要達到這樣的2011021804254.csv
您可以添加更多的格式,只是只要它不包含任何以下內容:\/: * ? " < > |
冒號和斜槓都是無效字符。 – xcud 2011-02-18 21:25:09
不冒號選擇一個備用的NTFS流? – 2011-02-18 21:26:37