我花了很长时间弄清楚如何做到这一点,但没有找到任何有用的解决方案。
这就是我想要做的。我正在我的应用程序中生成一个巨大的二进制文件。棘手的是,这个过程需要我偶尔关闭 FileStream。现在的问题是,有时其他应用程序(即我的病毒扫描程序)正在使用文件不再锁定的这一短暂时刻来锁定文件本身。或其他应用程序,如保管箱等...
结果是,下次我需要打开文件流时,它说它被另一个进程锁定了。所有这些都很少发生,但当它发生时仍然很烦人。即使我仍然可以访问文件,我仍然不希望 ie 保管箱在完成之前上传此文件(这可能需要几分钟)。
我需要的是手动锁定文件的可能性,以便我的应用程序仍然可以打开该文件上的文件流,但在我再次手动解锁之前没有其他应用程序可以打开它。
我用伪代码描绘了这样的东西:
File.Lock(filepath);
//... do something that opens and closes filestreams on this file
File.Unlock(filepath);
有没有办法做到这一点?“保持文件流打开”的解决方案无效。我明确地试图避免这种情况,所以请记住这一点。