复制文件是否会导致其锁定

Does copying a file cause it to lock

在网络服务器上,我有一个 ASP.NET 网站,里面有 error.txt。

这个文件总是被写入。它在 bin 文件夹中。

如果出现以下情况,我应该担心:

  1. 我转到网络服务器并打开 bin 文件夹
  2. 转到网络服务器并打开 error.txt

我的 C# 代码总是以共享模式写入它 FileShare.ReadWrite

使用命令提示符将文件复制到另一个文件夹是否更安全以避免锁定?

这取决于您打开它的应用程序。例如,如果您使用 Microsoft Word 打开它,它将锁定该文件,其他进程将只能读取它。但是,如果你用记事本打开它,文件不会被锁定,另一个进程可以读取、写入、删除、移动或重命名它。

您可以简单地通过使用该应用程序打开一个文件进行测试,然后尝试删除、重命名、写入或移动该文件。如果您可以执行任何这些操作,那么您就知道您的应用程序没有锁定它。

假设您只是用资源管理器复制它,复制文件会在读取文件时将其锁定。如果它是一个小文件,这将只是几毫秒。

为确保您的应用程序在文件锁定时尝试写入文件时不会崩溃,请将写入操作置于循环中,如果返回异常则重试,等待 100 毫秒两次尝试之间。