2012-01-10 35 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是你要寻找它的大小