【发布时间】:2009-02-17 17:21:57
【问题描述】:
如果我试图删除一个文件,但同时另一个进程正在对同一个文件执行 File.Exists(...),这是否会锁定该文件并导致我的进程失败?
【问题讨论】:
如果我试图删除一个文件,但同时另一个进程正在对同一个文件执行 File.Exists(...),这是否会锁定该文件并导致我的进程失败?
【问题讨论】:
不,File.Exist() 仅检查有问题的文件是否位于指定路径的文件系统上。它无论如何都不会访问文件数据或标题,因此它不会锁定文件。
附带说明,即使打开文件也不一定会锁定它。这取决于您打开时选择的访问参数。
【讨论】:
不,File.Exist 不会锁定文件。不过,了解幕后发生的事情的一个好方法是查看source code。
下拉 .Net Framework 基类库的源代码,看看幕后发生了什么。特别是 System.IO.File 类,有一些非常有趣的默认选择,用于文件处理、锁定、释放等。在像您这样的实例中,查看幕后发生的事情的来源可以在如何处理方面产生重大影响你设计你的应用程序。
根据链接:
我可以使用共享源 CLI 做什么? Shared Source CLI 中有丰富的编程语言技术。它可能会引起广大受众的兴趣,包括:
【讨论】:
这是对 anu 以及任何对文件进行类似操作的人的回答。
使用 using 语句访问文件非常重要。这可确保您妥善处理对文件的引用。
using (var fs = File.OpenRead(path)) {
// Do something
}
【讨论】: