我有一个C#通知应用程序。
我有一个目录 'd:\mydir'
在我的代码中,我将其重命名为"d:\mydir2"
如果文件资源管理器处于打开状态并选择了"mydir",它将返回权限错误。
是否可以覆盖此拒绝的权限并强制重命名它,而不管任何其他外部应用程序/进程正在访问同一目录(或/及其内容)?
谢谢
可能:是(假设您具有管理员权限)
- 获取所有流程
Process[] processlist = Process.GetProcesses();
- 按标题标签过滤掉从该目录运行的进程(风险)
- 强行(或显示用户的弹出意见)关闭那些过程
- 关闭文件资源管理器窗口
- 重命名目录
你应该这样做:不
为什么 : 正如詹姆斯索普在评论中建议的那样 如果它是一个保存大文档的中途的程序,如果你杀死它,你有一个可能损坏的文件。