2013-07-27 43 views
1

我爲我的應用程序創建了一個記錄器,並且我遇到了一個問題,我需要將我的日誌文件保存在C驅動器中,但是在執行代碼時它給我一個錯誤「指定的路徑格式不支持」我當前的代碼如下如何使用C#在硬盤中保存文本文件

string path="C:\\Logger\\"+DateTime.Now.Date.ToString()+".txt"; 

    public void CreateDirectory() 
    { 
     if(!File.Exists(path)) 
     { 
      File.Create(path); 
     } 
    } 

任何解決方案給????

+0

Adel說的可能是找到這個問題的關鍵。一般來說,如果遇到類似這樣的情況,如果添加變量的實際內容將會很有幫助。你有沒有試過調試你的代碼? –

+0

您可以將其留給諸如企業庫之類的框架。 http://stackoverflow.com/questions/1260157/whats-the-most-widely-used-logging-framework-in-c) – yavuz

回答

5

你將不得不格式化日期:

string path="C:\\Logger\\"+DateTime.Now.Date.ToString("yyyy_MM_dd")+".txt"; 

,因爲操作系統是不會接受這樣的事情:現在

C:\Logger\07/27/2013.txt 

,以供將來參考,考慮使用Path.Combine建立自己的路徑:

var path = Path.Combine("C:\\Logger", 
    DateTime.Now.Date.ToString("yyyy_MM_dd"), 
    ".txt"); 

你不會有決定何時提供反斜槓,什麼時候不用。如果沒有,它會被追加給你。

最後,如果該目錄不存在,則可能會遇到問題。你可以做的一些事情是:

var path = ... 
var dir = Path.GetDirectoryName(path); 

if (!Directory.Exists(dir)) 
{ 
    Directory.Create(dir); 
} 

但即使如此,你可以在運行時遇到權限問題。

+0

+1 Path.Combine' –

1

檢查操作系統是否接受此結果:DateTime.Now.Date.ToString()

+0

我將我的文件名更改爲「C:\\ Logger \\ log.txt」,但仍然不能正常工作 – Optimus

+0

當你這樣做的時候,你會得到同樣的錯誤信息嗎? –

+0

沒有我得到這找不到路徑的一部分'C:\ Logger \ log.txt' – Optimus

相關問題