睡眠,直到文件存在/创建

本文关键字:存在 创建 文件 睡眠 | 更新日期: 2023-09-27 18:26:03

为了参考,我看过有没有办法检查文件是否正在使用?以及如何等待文件存在?

但我想避免使用SystemWatcher,因为它似乎有点过头了。我的应用程序正在调用cmd提示符来创建一个文件,因为我的应用软件无法知道它何时完成,所以只要文件不存在,我就考虑使用Sleep()。

string filename = @"PathToFile'file.exe";
int counter = 0;
while(!File.Exists(filename))
{
    System.Threading.Thread.Sleep(1000);
    if(++counter == 60000)
    {
        Logger("Application timeout; app_boxed could not be created; try again");
        System.Environment.Exit(0);
    }
}

不知怎么的,我的这个代码似乎不起作用。原因可能是什么?

睡眠,直到文件存在/创建

不确定哪个部分不工作。你意识到你的循环将持续60000秒(16.67小时)吗?你每秒递增一次,然后等待它达到60000。

试试这样的东西:

const string filename = @"D:'Public'Temp'temp.txt";
// Set timeout to the time you want to quit (one minute from now)
var timeout = DateTime.Now.Add(TimeSpan.FromMinutes(1));
while (!File.Exists(filename))
{
    if (DateTime.Now > timeout)
    {
        Logger("Application timeout; app_boxed could not be created; try again");
        Environment.Exit(0);
    }
    Thread.Sleep(TimeSpan.FromSeconds(1));
}
相关文章: