最佳答案:先问是不是,再问为什么(Windows下应用程序可以选择使用独占或非独占方式打开文件。具体地说,就是 CreateFile function 中的 dwShareMode 参数:其中,文件是否能够重命
先问是不是,再问为什么(
Windows下应用程序可以选择使用独占或非独占方式打开文件。具体地说,就是 CreateFile function
中的 dwShareMode 参数:
其中,文件是否能够重命名是由是否设置了 FILE_SHARE_DELETE 决定的。
---------------- 分割线 ----------------
如果是独占的话,示例代码如下:
运行后尝试重命名 foo.txt,此时会提示:
如果将代码改成允许共享的话:
再次运行,尝试修改 foo.txt 的名称则能够成功。
---------------- 分割线 ----------------
许多软件会独占文件,所以看起来打开的文件无法被重命名(当然这样也避免了打开的文件被错误使用)。当然,如果是像 notepad 那样比较简单的应用,应该是只在打开和保存文件时才会真正“打开”文件,于是就没有独占的问题了。