C# Directory.CreateDirectory导致System.IO错误文件写入速度过快
我有一个无法在实验室/开发环境中重现的问题 测试版用户在文件复制过程中报告以下错误 System.IO.DirectoryNotFoundException:找不到路径“C:\ProgramData…”的一部分 这一行代码是:C# Directory.CreateDirectory导致System.IO错误文件写入速度过快,c#,C#,我有一个无法在实验室/开发环境中重现的问题 测试版用户在文件复制过程中报告以下错误 System.IO.DirectoryNotFoundException:找不到路径“C:\ProgramData…”的一部分 这一行代码是: Directory.CreateDirectory(path); 现在我在猜测这里发生了什么。CreateDirectory将操作交给操作系统。在我的测试和开发机器上有大量的资源,操作系统会立即创建目录 在beta用户的机器上,它的资源更具挑战性,在几毫秒内,甚至一整秒
Directory.CreateDirectory(path);
现在我在猜测这里发生了什么。CreateDirectory将操作交给操作系统。在我的测试和开发机器上有大量的资源,操作系统会立即创建目录
在beta用户的机器上,它的资源更具挑战性,在几毫秒内,甚至一整秒钟内,它都不会创建目录
在此期间,我的应用程序已经移动,并期待着文件夹会在那里。
CopyTo(路径,true)
我的第一个问题是我是否正确地连接了这些点
第二个问题是,如果是这样,我应该如何处理
TIA使用FileSystemWatcher.Created事件在创建目录时给您回电话。您需要监视父目录中的活动 msdn示例代码:
您的评估可能是正确的。在
Directory.CreateDirectory()调用返回和在文件系统上实际创建目录之间可能存在延迟。这是本文讨论的内容:
解决方法是在调用CreateDirectory()
之后,在循环中调用Directory.Exists()
(),如下所示:
Direcotry.CreateDirectory(path);
int waitCount = 10;
do {
if (Directory.Exists(path))
{
break;
}
Thread.Sleep(100); // sleep 100ms
waitCount--;
if (waitCount <= 0)
{
throw new Exception("Failed to create directory");
}
} while(true);
Direcotry.CreateDirectory(路径);
int waitCount=10;
做{
if(目录存在(路径))
{
打破
}
Thread.Sleep(100);//睡眠100ms
等待计数--;
如果(waitCount当用户创建新文件夹时,您可以使用FileSystemWatcher进行捕获。您如何使用环境变量设置路径
?您能否向我们显示设置路径的代码?与此同时,我的应用程序已经移动,并且希望文件夹在那里。
如果没有lo,无法确定这一点查看创建目录和访问同一目录的代码。您可以围绕这两个代码编写一些日志语句,并在出现错误时检查它们。类似:今天似乎是。。