0

別のマシンで開いている空の共有ディレクトリを削除しようとしています。ディレクトリを直接削除すると(右クリックして削除)、削除されます。

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;
                }
            }
        }

共有パスを使用して同じマシンまたは別のマシンでディレクトリを開いた場合、ディレクトリは削除されません。

私はこれを見つけました が、コードを正しく理解できませんでした。

誰かがより良い方法を提案しますか?前もって感謝します

4

1 に答える 1

0

System.IO.IOException: 別のプロセスで使用されているため、プロセスはファイル 'c:\dir' にアクセスできません

つまり、使用中なので、削除することはできません。あなたが言うように空の場合、それは a) ネットワーク共有上の誰かによって使用されているか、それを監視しているサーバー上で何かが実行されている必要があります。サービスを停止する必要がある場合があります。

于 2012-09-13T09:31:32.937 に答える