先問是不是,再問為什麼(
Windows下應用程式可以選擇使用獨佔或非獨佔方式開啟檔案。具體地說,就是 CreateFile function 中的 dwShareMode 引數:
其中,檔案是否能夠重新命名是由是否設定了 FILE_SHARE_DELETE 決定的。
---------------- 分割線 ----------------
如果是獨佔的話,示例程式碼如下:
執行後嘗試重新命名 foo.txt,此時會提示:
如果將程式碼改成允許共享的話:
再次執行,嘗試修改 foo.txt 的名稱則能夠成功。
許多軟體會獨佔檔案,所以看起來開啟的檔案無法被重新命名(當然這樣也避免了開啟的檔案被錯誤使用)。當然,如果是像 notepad 那樣比較簡單的應用,應該是隻在開啟和儲存檔案時才會真正“開啟”檔案,於是就沒有獨佔的問題了。
先問是不是,再問為什麼(
Windows下應用程式可以選擇使用獨佔或非獨佔方式開啟檔案。具體地說,就是 CreateFile function 中的 dwShareMode 引數:
其中,檔案是否能夠重新命名是由是否設定了 FILE_SHARE_DELETE 決定的。
---------------- 分割線 ----------------
如果是獨佔的話,示例程式碼如下:
執行後嘗試重新命名 foo.txt,此時會提示:
如果將程式碼改成允許共享的話:
再次執行,嘗試修改 foo.txt 的名稱則能夠成功。
---------------- 分割線 ----------------
許多軟體會獨佔檔案,所以看起來開啟的檔案無法被重新命名(當然這樣也避免了開啟的檔案被錯誤使用)。當然,如果是像 notepad 那樣比較簡單的應用,應該是隻在開啟和儲存檔案時才會真正“開啟”檔案,於是就沒有獨佔的問題了。