.net 确定是否可以移动或复制文件

.net 确定是否可以移动或复制文件,.net,file,copy,move,.net,File,Copy,Move,除了尝试该操作并捕获异常外,是否有方法确定文件是否可以移动或复制?无法知道文件移动或复制是否保证成功 但是你可以检查很多东西,看看它是否会失败: 检查目标位置的磁盘空间(至少需要文件大小) 检查目标位置已存在的文件 打开一个文件,请求对源文件进行读访问,以确保1)您对它有权限,2)它未被使用 您可以读取整个源文件,以确保文件中没有锁 windows资源管理器在复制文件(或跨卷移动)时使用的一个技巧是首先创建一个空白文件,然后将文件扩展到完整大小。只有在文件完全分配后,才会开始写入文件 为要复制

除了尝试该操作并捕获异常外,是否有方法确定文件是否可以移动或复制?

无法知道文件移动或复制是否保证成功

但是你可以检查很多东西,看看它是否会失败:

  • 检查目标位置的磁盘空间(至少需要文件大小)
  • 检查目标位置已存在的文件
  • 打开一个文件,请求对源文件进行读访问,以确保1)您对它有权限,2)它未被使用
  • 您可以读取整个源文件,以确保文件中没有锁
  • windows资源管理器在复制文件(或跨卷移动)时使用的一个技巧是首先创建一个空白文件,然后将文件扩展到完整大小。只有在文件完全分配后,才会开始写入文件
  • 为要复制的数据大小分配一个文件,还将告诉您是否也有文件系统报价
  • 如果某个文件正在使用中,并且您希望达到此目的,则可以使用卷影复制(VSS)
有关文件锁定的更多信息:

请看我的答案这里有更多的信息


有关的更多信息,请参见我的回答。

通常,请查看文件是否存在,当前用户是否有权读取文件(或删除文件以进行移动),以及是否有权访问目标目录。同样,对于复制,您应该检查是否有可用的磁盘空间。当然,在此之前,请确保原始文件和目标目录仍然存在


当然,这并不能保证手术会成功。很多事情都可能发生。即使是文件的权限也可以在您检查和执行操作之间更改。

如果可以读取文件,则可以移动或复制该文件。您是否在询问如何检查移动或复制是否成功?

某些文件系统允许只读访问,在这种情况下,可以进行复制,但不能进行移动。