getfile()返回没有匹配时的字符串数组问题

问题描述:

我一直被委托在c#中编写一个小应用程序,该应用程序在一个目录中搜索给定的文件类型。我正在使用.txt文件进行测试,但该应用程序适用于Zebra打印机的.epl文件。getfile()返回没有匹配时的字符串数组问题

我试图把它写在这样一种方式:

AO如果找到.epl文件发送到打印机,删除.epl文件,然后等待几秒钟。 再次为.epl文件搜索目录,发送到打印机,删除。

如果没有找到.epl文件,请等待几秒钟,直到找到.epl文件。重复a)

问题出现在Directory.GetFiles(@ s1,“* .txt”)根本找不到.txt文件并尝试与程序其余部分一起运行时出现的问题。

我得到:System.IndexOutOfRangeException:索引超出了数组的范围。

我不知道该怎么办,我相信这是做空例外?我的代码不完整,因为这个问题让我难堪;我也是新手,所以它不是最干净的代码。你胡乱使用filePaths[0]即使数组可能为空http://pastebin.com/BHNAtTsk

:如下

代码。这根本不是用空值完成的。 GetFiles()总是返回一个数组,但如果找不到匹配的文件,它将是一个空数组。

我相信你应该简单地改变你的条件:

if (filePaths.Length > 0) 
+0

简单的解决方案,工作没有问题。谢谢! 我需要我的早晨咖啡:p – Nemekh 2010-09-23 10:04:49

看看这个代码:

string[] filePaths = Directory.GetFiles(@s1, "*.txt"); 
if ((filePaths[0]).Length > 1) ..... 

从文档:

http://msdn.microsoft.com/en-us/library/07wt70x2.aspx

如果没有文件这个方法返回一个空数组。

所以适当的检查,而不是:

if (filePaths.Length > 0)