質問

を使用してい SharpSvn 図書館アプリケーションの一環として私の自動統合試験は,試験リポジトリのチェックアウト作業コピーを行ういくつかの試験の後、削除のリポジトリおよび作業コピーフォルダの中に別のフォルダを作

しかしながら、 Directory.Delete(workingCopyPath, true); 常果 UnauthorizedAccessException メッセージ"アクセスのコストパフォーマンス作品"が拒否されます。".いを再現できるエラーコード:

     using (var svnClient = new SvnClient())
     {
        svnClient.CheckOut(
           new SvnUriTarget(new Uri(repositoryPath)), workingCopyPath);
     }
     Directory.Delete(workingCopyPath, true);

このエラーが発生しま

  • みを削除するには作業コピーの作成 による の統合 試験
  • Thread.Sleep 数秒前 しようと削除

ばエクスプローラ使用"を手動で削除一時作業コピーが付かないエラーとなります。

何がおかしい。何が正しいprogramatically削除するsubversionの作業コピー?

役に立ちましたか?

解決

Directory.Delete判明読み取り専用ファイルを削除することを拒否します。

私は今、削除のディレクトリに、このメソッドを使用します:

private void DeleteDirectory(string path)
{
   var directory = new DirectoryInfo(path);
   DisableReadOnly(directory);
   directory.Delete(true);
}

private void DisableReadOnly(DirectoryInfo directory)
{
   foreach (var file in directory.GetFiles())
   {
      if (file.IsReadOnly)
         file.IsReadOnly = false;
   }
   foreach (var subdirectory in directory.GetDirectories())
   {
      DisableReadOnly(subdirectory);
   }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top