[英]How to delete a shared folder using c# code if the directory is opened on another machine?
我正在嘗試刪除在另一台計算機上打開的空共享目錄。 如果我直接刪除目錄(右鍵單擊並刪除),它將被刪除。
Stopwatch st = new Stopwatch();
st.Start();
while(true){
try
{
Directory.Delete(pathToDelete, true);
Console.WriteLine("Directory Deleted" + "Elapsed time:" + st.Elapsed.Seconds.ToString() + "sec");
break;
}
catch (Exception e)
{
if ((e is System.IO.IOException) || (e is System.UnauthorizedAccessException) ||
(e is System.Reflection.TargetInvocationException))
{
Console.WriteLine(e.ToString());
if (st.Elapsed > TimeSpan.FromMinutes(5))
{
Console.WriteLine("Can not delete directory ");
return;
}
Thread.Sleep(1000);
}
else
{
throw;
}
}
}
如果目錄是使用共享路徑在同一台計算機或另一台計算機上打開的,則不會刪除該目錄。
我發現了這個,但我無法正確理解代碼。
有人建議更好的方法嗎? 提前致謝
System.IO.IOException:該進程無法訪問文件“ c:\\ dir”,因為它正在被另一個進程使用
這意味着它正在使用中,因此您將無法刪除它。 如果它是空的(如您所說),則必須是a)網絡共享上的某人正在使用它,或者是服務器上正在運行某些監視它的東西。 您可能需要停止服務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.