如果我尝试删除文件,但同时另一个进程正在同一文件上执行File.Exists(...),那么是否可能会锁定文件并导致我的进程失败?
答案 0 :(得分:11)
不,File.Exist()仅检查有问题的文件是否位于指定路径的文件系统上。它无论如何都不会访问文件数据或标题,因此它不会锁定文件。
另外,即使打开文件也不一定会锁定它。这取决于您在打开时选择的访问参数。
答案 1 :(得分:3)
不,File.Exist不会锁定文件。不过,看看幕后发生的事情的好方法是浏览source code。
下拉.Net Framework基类库的源代码,看一下幕后发生的事情。特别是,System.IO.File类有一些非常有趣的默认选择,用于文件处理,锁定,释放等。在像你这样的实例中,看到幕后发生的事情的来源可以在如何影响方面发挥重要作用。你设计你的应用程序。
根据链接:
如何使用Shared Source CLI? Shared Source CLI中有丰富的编程语言技术。广泛的受众可能会感兴趣,包括:
答案 2 :(得分:2)
这是对anu的回答 - 任何人都在做与文件类似的事情。
使用using语句访问文件非常重要。这可以确保您妥善处理对文件的引用。
using (var fs = File.OpenRead(path)) {
// Do something
}