Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#,如果file.length==0,则忽略_C#_File Io - Fatal编程技术网

C#,如果file.length==0,则忽略

C#,如果file.length==0,则忽略,c#,file-io,C#,File Io,采用Hilgreths的答案使代码更好,但实际问题是变量数据类型,将类型从string更改为bool,以允许没有数据的文件修复了该问题 在这里或其他论坛上似乎找不到答案,只是想知道是否有办法忽略长度为0的文件 我的程序正在搜索目录并返回所有文件,然后我想搜索目录并找到最近的文件,如果文件长度为0,我想跳到下一个文件,但系统不断崩溃,我的代码看起来像 if(fileinfo.Length > 0) { GetLatestWritenFileFileInDirectory(direct

采用Hilgreths的答案使代码更好,但实际问题是变量数据类型,将类型从string更改为bool,以允许没有数据的文件修复了该问题

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

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

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

else if(result.Length == 0)
{

}
目前非常粗糙,因为我不想为自己编写(显然),jus想知道我是否可以在不使用linq的情况下以某种方式跳过空文件,因为我使用的是framework 1.0


感谢在
else if
语句中使用
fileinfo.Length
而不是
result.Length

您可以通过调用
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);
    }
}
for(int i=0;i0)
{
GetLatestWriteFileIndirectory(所有文件[0],关键字EH,关键字Inter,关键字M&M);
}
}
您应该这样做

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

这应该是全部。

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

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

这就足够了,除非您想处理长度==0的文件,而您似乎不想这样做。

将结果更改为fileinfo.length,但只是想知道如何在尝试在else中再次调用函数时告诉它检查dir中的下一个文件,如果它崩溃了为什么我们必须猜测这些变量是什么?我们怎样才能猜出结果是什么?甚至
fileInfo
。为什么我们要猜测你的代码是如何失败的。你刚才说“系统不断崩溃”。您收到了一条错误消息。传下去!@DavidHeffernan的可能副本没有包括细节,因为我认为它们无关紧要,因为我正在寻找一种使用if而不是最终结果跳过空文件的方法。。。给出的错误为错误:System.Reflection.TargetInvocationException:调用的目标已引发异常。-->Microsoft.SqlServer.Dts.Runtime.DtsRuntimeException:分配给变量“User::FileHasNodeData”的值的类型与当前变量类型不同。变量在执行期间不能更改类型。变量类型是严格的,除了Object类型的变量。当然,如果没有真正的代码,这个错误对我们来说毫无意义。你应该做一个SSCCE。现在解决这个问题还不算太晚。@Damith不,我已经研究过了,它不能解释空文件。如果文件长度为0,我想继续搜索目录,以前尝试过按您建议的方式进行搜索,但仍然无效