2012-01-10 83 views
2

我想檢查文件是否沒有任何內容。如何檢查文件內容是否爲空?

這是我有檢查/創建/寫入文件:

class LastUsed 
    { 
     private static string dir = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\Folder\"; 
     private static string file = dir + @"\Settings.txt"; 
     private string text; 

     public void CheckFileStatus() 
     { 
      if (!Directory.Exists(dir)) 
      { 
       DirectoryInfo directory = Directory.CreateDirectory(dir); 
      } 
      if (!File.Exists(file)) 
      { 
       using (FileStream fileStream = File.Create(file)) 
       { 
       } 
      } 
     } 

     private void SetFileText(string writeText) 
     { 
      using (StreamWriter streamWriter = new StreamWriter(file)) 
      { 
       streamWriter.Write(writeText); 
      } 
     } 

     private string GetFileText() 
     { 
      string readText; 

      using (StreamReader streamReader = File.OpenText(file)) 
      { 
       readText = streamReader.ReadLine(); 
      } 

      return readText; 
     } 

     public string Text 
     { 
      set 
      { 
       text = value; 
       SetFileText(text); 
      } 
      get 
      { 
       return GetFileText(); 
      } 
     } 

正如我們看到的,我可以通過使用屬性讀/寫文件。所以我試圖檢查Text屬性的空值,但它似乎不工作。

我該怎麼做?

+3

文件路徑如何檢查,如果該文件是空的(意思是文件大小爲0)?這不是火箭科學。 – 2012-01-10 03:36:39

+0

@ M.Babcock,我沒有真正想到這一點。但它似乎是一個很好的解決方案。 – HelpNeeder 2012-01-10 03:38:18

+1

未來,請務必考慮如何解決您的問題,然後再將其展示給其他人解決。事實上,如果你真的試圖在依靠SO這裏的志願者之前解決你的問題,那將會很好。 – 2012-01-10 03:40:22

回答

9

只需檢查文件的大小是否爲零字節:Get size of file on disk

+0

看起來很好很簡單! +1! – HelpNeeder 2012-01-10 03:37:09

+0

鏈接中的答案不僅僅是答案,而是您想要的文件內容的邏輯大小。 – amalgamate 2013-09-06 16:35:57

+0

我的.log文件的長度大於0,即使它是空的,所以每次都不起作用 – Qerts 2015-04-18 07:58:15

9

此代碼應該這樣做

if (new FileInfo(fileName).Length ==0){ 
    // file is empty 
} else { 
    // there is something in it 
} 

filename是你要尋找它的大小