在我的应用程序中,我试图重命名文件夹,但如果在 Windows 资源管理器中打开该文件夹,我会得到一个IOException
. 如何确定文件夹是否在 C# 的 Windows 资源管理器中打开?
问问题
3679 次
3 回答
8
捕获 IOException?
正如其他人所说,只要尝试做你想做的事,如果它发生就捕获异常并采取适当的行动,无论你的上下文是什么。
在我看来,您实际上没有太多选择,请考虑:
bool iHaveAccess = CheckAccess(folder);
if (iHaveAccess)
{
RenameFolder(folder,newFolderName);
}
如果在 CheckAccess 成功和调用 RenameFolder 之间会发生什么情况会锁定文件夹?那该怎么办?
于 2010-01-22T15:53:30.327 回答
1
确定程序是否以阻止您重命名的方式打开文件夹是不合理的。因为在您做出决定后,另一个进程可能会立即开始或停止使用该文件夹。相反,只需执行操作并捕获生成的异常。
try {
Directory.Move("old","new");
return true;
} catch ( IOException ) {
return false;
}
于 2010-01-22T15:56:02.690 回答