我希望我的應用程序清除它使用的所有臨時文件,問題是並非所有臨時文件都在我的控制之下,所以我只想「殘酷地」解鎖它們以便以編程方式刪除它們。如何解鎖被.NET中的進程鎖定的文件
16
A
回答
4
2
當然,你的應用是想清理其擁有的臨時文件,那麼你必須完全控制解鎖這些文件並將其刪除!
如果你想刪除所有臨時文件是否通過應用程序或以其他方式擁有的,你應該非常小心。原始應用程序可能應用了鎖,因爲它想要使用該文件!
如果你真的需要,你總是可以生成一個命令行應用程序,而不是試圖複製現有的工具,這將是在C#中艱難的功能。
+0
他們的文件是我的應用程序的一部分,但他們不是我的模塊的一部分,出於政治原因,我無法修改該模塊(並不真正想進入這些細節:-)),無論如何,我知道這是可以安全地殘酷地刪除這些文件。 – 2008-10-28 11:55:12
3
我這個掙扎的歡迎,並結束了剛剛脫殼而出,以解鎖的命令行執行。在我的情況下,它必須每天運行很多次,最終每天解鎖數千個文件而沒有任何問題。
0
看看這個thread在MSDN論壇上。有足夠的信息來做你想做的事,但不推薦。
我不知道你的應用程序和文件正在使用,但如果你正在使用的FileStream操作與您文件,你必須關閉的FileStream和處置FileStream對象,然後您使用的文件(S)將成爲解鎖。 – milot 2008-10-28 12:44:19