[英]Is there a way to instantly check whether a directory is in use?
我想用Directory.Move移動目錄及其所有子目錄。
但是,在我這樣做之前,我想檢查目錄及其子目錄中的任何文件和子文件是否正被其他進程使用。
然后,在移動之前,我想將目錄鎖定到其他進程,因此我可以確定Directory.Move不會拋出任何異常。
實現這一目標的最佳方法是什么?
我想避免逐個文件檢查單個文件的使用情況,因為軟件檢查時不使用該文件的事實並不意味着在移動過程開始時不會使用它。
無法鎖定文件夾(+子文件夾),因此您總是會遇到競爭條件,並且無法保證不會出現異常。
檢查和移動之間總會有變化的可能性,所以事情可能會出錯。
只是嘗試移動文件夾,如果沒有成功則稍后重試。
另請參閱: Delphi:檢查文件是否正在使用 (這是一個類似的問題,只需忽略Delphi部分)
您可以將File opteration放入try .. catch塊並捕獲IOException
。
try
{
// try to move
}
catch (System.IO.IOException ex)
{
// file used by another process or other IO Exception
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.