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)
答
看看这个代码:
string[] filePaths = Directory.GetFiles(@s1, "*.txt");
if ((filePaths[0]).Length > 1) .....
从文档:
http://msdn.microsoft.com/en-us/library/07wt70x2.aspx
如果没有文件这个方法返回一个空数组。
所以适当的检查,而不是:
if (filePaths.Length > 0)
简单的解决方案,工作没有问题。谢谢! 我需要我的早晨咖啡:p – Nemekh 2010-09-23 10:04:49