2012-10-22 174 views
0

我的程序使用此代碼刪除其臨時文件夾:刪除臨時文件夾的內容

// ... 
    if (!RemoveDirectory(L"C:\\MyTemp")) 
     return false; 

    if (!CreateDirectory(L"C:\\MyTemp", NULL)) 
     return false; 
    else 
     return true; 
    // ... 

但是,實際上,我必須刪除臨時的內容(子文件夾和文件的話)並在刪除一些文件可能會瞬間由程序使用。這個代碼如何以更好的形式寫入?我會很感激你的小代碼示例。

+0

如果您的程序使用了文件,並且您嘗試刪除它們,那麼我認爲您的架構存在嚴重問題。 – alestanis

+0

正如旁註:假設每個人的分區都映射到其根驅動器C:的位置並不總是好的。例如,我的XP分區是D:我的Win 7分區是E :,我的C:驅動器是額外的空間。所以爲我運行這個程序不會按照指示進行。 – M4rc

+0

@alestanis:除非代碼最初是爲Posix編寫的,在這種情況下刪除文件時使用它們的作品,有時是完全合理的。在Posix上,「刪除」一個文件只是取消了該文件的一個名稱,所以其他名稱和程序都不受影響。 –

回答

0

非便攜式解決方案是從<Shellapi.h>開始的SHFileOperation()。所使用的結構包含一個fAnyOperationsAborted成員,它將告訴您是否有任何文件無法刪除。