gpt4 book ai didi

c# - 在 C# 中,如何检查 File.Delete() 是否会在不尝试的情况下成功?

转载 作者:IT王子 更新时间:2023-10-29 04:11:27 25 4
gpt4 key购买 nike

在 C# 中,System.IO.File.Delete(filePath) 将删除指定的文件,或者引发异常。如果当前用户没有删除文件的权限,它将引发 UnauthorizedAccessException。

有什么方法可以让我提前判断删除是否可能抛出 UnauthorizedAccessException(即查询 ACL 以查看当前线程的身份是否具有删除指定文件的权限?)

我主要想做的是:

if (FileIsDeletableByCurrentUser(filePath)) {
/* remove supporting database records, etc. here */
File.Delete(filePath);
}

但我不知道如何实现 FileIsDeletableByCurrentUser()。

最佳答案

实现 FileIsDeletableByCurrentUser 的问题是不可能这样做。原因是文件系统是一个不断变化的项目。

在您对文件系统进行的任何检查和下一个操作之间,可能并且将会发生任何数量的事件。包括……

  • 文件的权限可能会改变
  • 文件可以删除
  • 文件可能被其他用户/进程锁定
  • 可以删除文件所在的 USB key

您可以编写的最好的函数最恰本地命名为 FileWasDeletableByCurrentUser

关于c# - 在 C# 中,如何检查 File.Delete() 是否会在不尝试的情况下成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1444153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com