一系列 Microsoft 簡報圖形產品,提供建立簡報及新增圖形效果 (例如多媒體物件和具有文字的特殊效果) 的工具。
如果你檔案放本機,有用過 dcomcfg 設定 Automation 執行帳號,那對 ~$*.pptx 滑鼠右鍵,看看建立者,是該帳號沒刪,你的帳號刪不掉。
如果你檔案放網路芳鄰或網路磁碟,問 IT ,通常表示該目錄 IT 沒有授權刪除。
我寫了個小工具來判斷*.pptx是否礎於開檔狀態。我觀察到當檔案開啟時,會產生一個*~$*.pptx
因此我始終以為這樣的判定是非常準確的也一直很正常使用。直到我換了台電腦後發現,PPT存檔後*~$*.pptx被刪除了,即便我還在編輯中,這個檔案也依舊不會再出現。一直到我關閉檔案,再手動點開這個PPT時,又會產生~$*.pptx*。
有趣的是我找了朋友跟同事的電腦測試,包含Windows 10/11,Office 2016/2021/365,沒有辦法找出一定的規律,有些電腦就是會持續保留*~$*.pptx* 有些電腦就是會在儲存時被刪除。
Excel/Word都始終會保留*~$*.xlsx或~$*.docx 。*
想了解這樣的差異為何,希望各路大神專家能幫助我解決這個小問題。
一系列 Microsoft 簡報圖形產品,提供建立簡報及新增圖形效果 (例如多媒體物件和具有文字的特殊效果) 的工具。
下午好林布可
檢測檔案是否被打開應該使用 CreateFile 函數將 dwShareMode 設爲 0(獨占模式)后開啟檔案,從返回的狀態信息來判斷是否被開啓,如果為開檔狀態則會返回錯誤。
詳細用法和參數請閲讀:建立和開啓檔案 - Win32 apps。
至於 ~$<原檔案名> 這個檔案,它在一些時候可能被創建在其他路徑,且異常關閉時不會被回收所以不能拿來判斷。
Hi, 布可 林
歡迎來到 Microsoft Q&A 社群。
非常感謝您耐心等候我們處理此問題。
在 PowerPoint 中,存檔期間的重新命名/刪除步驟有時無法立即(或根本無法)重新建立擁有者檔案 (owner file),除非您關閉並重新開啟簡報。這種情況在 Word 或 Excel 中並不常見,它們能更可靠地重新建立鎖定。測試和報告顯示,這種情況可能因以下因素而異:
由於此行為,依賴 ~$ 檔案是否存在來判斷 PowerPoint 檔案狀態並不可靠。建議您修改您的小工具,改為嘗試以獨佔鎖定方式開啟檔案來檢查其是否正在使用中。如果嘗試失敗(因為 PowerPoint 已將其開啟),則表示該檔案正在使用中。此方法在各個 Office 應用程式中都能穩定運作,並能避免暫存檔的異常問題。
以下是一個 C# 的範例(假設您的小工具是使用 .NET 開發;請根據您使用的語言進行調整):
using System;
using System.IO;
public class FileInUseChecker
{
public static bool IsFileInUse(string filePath)
{
try
{
// Attempt to open the file with exclusive access
using (FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.None))
{
stream.Close();
}
return false; // Opened successfully, so not in use
}
catch (IOException)
{
// IOException means file is locked/in use
return true;
}
catch (Exception)
{
// Other errors (e.g., file not found)
return false;
}
}
public static void Main(string[] args)
{
string pptxPath = @"C:\Path\To\Your\File.pptx";
if (IsFileInUse(pptxPath))
{
Console.WriteLine("File is open/in use.");
}
else
{
Console.WriteLine("File is not open.");
}
}
}
運作原理: FileShare.None 會請求獨佔存取權。如果 PowerPoint(或任何其他應用程式)已開啟該檔案,此嘗試將失敗並引發 IOException。
優點: 方法直接,不依賴 ~$ 檔案,適用於所有檔案類型,且能處理網路和本機檔案。
注意事項: 請確保您的小工具對該檔案擁有讀取權限。此方法無法偵測到以無鎖定的唯讀模式開啟的檔案。
如果此範例不適用於您小工具的語言/框架,請提供更多詳細資訊,以便我們為您提供更貼切的範例。關於此錯誤,您可透過 PowerPoint 的「意見反應」工具(檔案 > 意見反應)向 Microsoft 支援部門報告,並附上您的測試環境設定。如果受影響電腦上的檔案位於 OneDrive 資料夾中,請嘗試將其移動到非同步的位置進行測試。
感謝您的體諒與理解。如果您有任何其他需要,請隨時與我聯繫。
如果這個回答對您有幫助,請點擊「接受答案」並給予好評。 如果您對此回答有其他問題,請點擊「評論」。
Note:如果您希望收到此討論串的相關電子郵件通知,請依照「變更您的 : 變更您的Microsoft問答喜好設定 | Microsoft Learn