在Web服务器上,我有一个带有error.txt的ASP.NET网站。
此文件始终写入。它位于bin文件夹中。
我是否应该担心:
我的C#代码始终以共享模式FileShare.ReadWrite
使用命令提示符将文件复制到另一个文件夹更安全以避免锁定吗?
答案 0 :(得分:1)
这取决于您打开它的应用程序。例如,如果您使用Microsoft Word打开它,它将锁定文件,其他进程只能读取它。但是,如果使用记事本打开它,则文件不会被锁定,而另一个进程可以读取,写入,删除,移动或重命名它。
您只需使用应用程序打开文件即可进行测试,然后尝试删除,重命名,写入或移动文件。如果您可以执行任何这些操作,那么您就知道您的应用程序没有锁定它。
假设您只是使用资源管理器复制它,复制该文件将锁定它以读取文件所需的时间。如果它是一个小文件,这只是几毫秒。
要确保应用程序在锁定时尝试写入文件时不会崩溃,请将写入操作置于循环中,如果返回异常则重试,等待100毫秒尝试之间。