防止Windows资源pipe理器干扰目录 *** 作

防止Windows资源pipe理器干扰目录 *** 作,第1张

概述防止Windows资源pipe理器干扰目录 *** 作

有时,运行此代码后,没有“foo”目录

string folder = Path.Combine(Path.GetTempPath(),"foo"); if (!Directory.Exists(folder)) Directory.CreateDirectory(folder); Process.Start(@"c:windowsexplorer.exe",folder); Thread.Sleep(TimeSpan.FromSeconds(5)); Directory.Delete(folder,false); Directory.CreateDirectory(folder);

看来windows资源pipe理器保持对文件夹的引用,所以最后的CreateDirectory没有任何关系,但是原来的文件夹被删除了。 我如何修复代码?

编辑:对不起,我的问题不清楚。 我的目标是创build一个空的“富”目录。 如果该目录已经存在,我将其删除并重新创build。 问题是,如果windows资源pipe理器正在查看该目录,则CreateDirectory调用有时会自动失败。 没有例外, 该目录只是没有创build。

上面的代码重现了我的电脑中的问题。 只有最后两行属于我的实际应用程序。 以前的行是设置。 运行代码后,“foo”总是存在吗? 在我的电脑中,情况并非如此。

防止Winform被最大化?

windows 7将如何编程? .NET仍然是国王?

LRU文件caching和在windows目录中查找文件的成本

统计在特定用户login下运行的单个进程的所有实例的最佳方法是什么?

从远程服务器读取证书哈希

目前,我手动删除foo的每个文件和子目录。

检测外部进程是否交互式,并有任何可见的用户界面

是WPF仍然相关,我可以在我的C#窗口应用程序中使用它?

在UWP中设置PasswordBox的alignment方式

如何更改Powershell中列表框的字体大小

从windows服务中杀死一个进程

既然你没有提供细节(如例外,错误),我会认为这是问题。

我认为问题是当您运行命令删除文件夹时,资源管理器仍在运行。 这可能是一个锁定问题。

Directory.Delete(folder,false);

要么是,要么有一些其他应用程序访问该文件夹或其子文件夹或文件 ,如果偶然的话。

如果可能的话,我建议不要通过资源管理器或任何其他应用程序来触摸文件夹,并等待资源管理器先退出,然后再删除该文件夹。

Process p = Process.Start(@"c:windowsexplorer.exe",folder); Thread.Sleep(TimeSpan.FromSeconds(5)); p.WaitForExit(); //<------- Directory.Delete(folder,false);

另外,请不要忽略抛出的异常和错误,并将它们粘贴到这里(如果有的话)。

希望能帮助到你。

总结

以上是内存溢出为你收集整理的防止Windows资源pipe理器干扰目录 *** 作全部内容,希望文章能够帮你解决防止Windows资源pipe理器干扰目录 *** 作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1284193.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存