采用Hilgreths的答案使代码更好,但实际问题是可变数据类型,将类型从字符串更改为bool以允许没有数据的文件修复问题。
似乎无法在这里或其他论坛上找到答案,只是想知道是否有办法忽略长度为0的文件。
我的程序正在搜索DIR并返回所有文件,然后我想搜索目录并查找最新文件,如果文件长度为0我想跳到下一个文件但系统仍然崩溃,我的代码到目前为止看起来像
if(fileinfo.Length > 0)
{
GetLatestWritenFileFileInDirectory(directoryInfo, keywordEH, keywordINTER, keywordM&M);
}
else if(result.Length == 0)
{
}
目前非常粗糙,因为我不是在寻找它为我写的(显然)jus想要知道我是否可以在不使用linq的情况下以某种方式跳过空文件,因为我正在使用框架1.0
感谢
答案 0 :(得分:1)
在fileinfo.Length
声明中使用result.Length
代替else if
。
答案 1 :(得分:0)
您可以通过SearchOption.AllDirectories
GetFiles
方法获取所有文件
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);
}
}
答案 2 :(得分:0)
你应该做
if(File.ReadAllText(yourfileName).Length == 0)
continue;
这应该是全部。
答案 3 :(得分:0)
我认为你可以删除else if语句,因为FileInfo.Length不能小于0.
if(fileInfo.Length > 0)
{
////Do your stuff with non empty files
}
除非您想要处理长度== 0的文件,否则这就足够了,这似乎不是。