数组故障c#

时间:2010-10-04 17:18:43

标签: c#

我的任务是编写一个c#程序,该程序用于执行以下操作:

您输入目标目录。 程序搜索目录是否存在。如果没有,请求新输入。否则继续。

程序获取某种类型的文件(它意味着是.epl文件,但为了解决这个问题,我只是使用.txt文件)并将它们添加到FilePathsA []数组中。 数组列表由FilePathsA。

组成

如果列表的计数为0;获取文件。 (在所述文件夹中只有1个类型的文件)。 如果列表的计数是1;获取文件路径字符串,创建文本阅读器实例。阅读文件文本,附加文本,将文本发送到打印机。

关闭文本阅读器实例。 删除刚刚打印的文件。 清除数组列表。

重复获取文件进程,直到找到新文件,打印/删除该文件,重复该循环。这意味着在程序关闭之前保持活跃状态​​。

获取初始文件正常;然后打印然后从文件夹中删除文件。然而,我的问题是延迟这个循环的递归。 一旦文件被删除,它将不断“搜索”但实际上不会继续。调试似乎表明它根本没有得到新文件。

不确定如何解决此问题,以下是代码摘录: http://pastebin.com/RNn7QqXJ

任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:3)

我认为你应该把

string[] filePathsA;
ArrayList filePaths;

在你的循环之外

filePathsA = Directory.GetFiles(@dir, "*.txt");
filePaths = new ArrayList(filePathsA);

do ... while块的开头。

答案 1 :(得分:3)

你为什么不:

while( !shutdown )
{
   foreach( string filename in Directory.GetFiles(@dir, "*.txt")
   {
      printTheFile( filename );
      File.Remove( filename );
      Thread.Sleep(3000); //if you need to sleep
   }
   Thread.Sleep(3000); //if you need to sleep
}

甚至可以更好地设置System.IO.FileSystemWatcher并处理文件创建。