-2

采用 Hilgreths 的回答使代码变得更好,但实际问题是可变数据类型,将类型从字符串更改为 bool 以允许没有数据的文件解决了这个问题。

似乎无法在这里或其他论坛上找到答案,只是想知道是否有办法忽略长度为 0 的文件。

我的程序正在搜索目录并返回所有文件,然后我想搜索目录并找到最新的文件,如果文件长度为0我想跳到下一个文件但系统不断崩溃,我的代码到目前为止看起来像

if(fileinfo.Length > 0)
{
    GetLatestWritenFileFileInDirectory(directoryInfo, keywordEH,  keywordINTER, keywordM&M);
}

else if(result.Length == 0)
{

}

目前非常粗糙,因为我不想为我写它(显然)只是想知道我是否可以在不使用 linq 的情况下以某种方式跳过空文件,因为我正在使用框架 1.0

谢谢

4

4 回答 4

1

在语句中使用fileinfo.Length而不是。result.Lengthelse if

于 2013-07-09T08:59:06.717 回答
0

您可以通过调用GetFiles方法来获取所有文件SearchOption.AllDirectories

FileInfo[] allfiles = directoryInfo.GetFiles("*.*", SearchOption.AllDirectories);

然后执行以下操作

for (int i = 0; i < allfiles.Length; i++)
{
    if (allfiles[0].Length > 0)
    {
        GetLatestWritenFileFileInDirectory(allfiles[0], keywordEH, keywordINTER, keywordM & M);
    }
}
于 2013-07-09T09:06:07.123 回答
0

你应该做

   if(File.ReadAllText(yourfileName).Length == 0)
         continue;

这应该就是全部了。

于 2013-07-09T09:13:58.977 回答
0

我认为您可以删除 else if 语句,因为 FileInfo.Length 不能小于 0。

if(fileInfo.Length > 0)
{
    ////Do your stuff with non empty files
}

除非您想处理长度 == 0 的文件,否则这已经足够了,而您似乎不需要。

于 2013-07-09T09:13:59.933 回答