私はjavascriptファイルのフォルダを最小化する別のプロセスを実行しています。このプロセスでは、 "_min.js"が付加されたjsファイルごとに新しいファイルが作成されます。次のステップは、古いjsファイル( "_min.js"なしのファイル)を削除することです。何らかの理由でFile.Deleteはこれらのファイルを削除できません。C#ファイルを削除できません - System.UnauthorizedAccessException
一部のプロセスでは、これらのファイルにハンドルが残っているようです。削除しようとするとSystem.UnauthorizedAccessException例外が発生します。私はこのフォルダに十分な特権を持っています。誰かが私が見落としていることを教えてもらえますか?
私はこのループで数回プロセスを実行しています。
foreach (var fileInfo in jsFiles)
{
var outFileName = fileInfo.FullName.Replace(".js", "_min.js");
var compressorPath = "\"C:\\Dev\\Team Interactive Tools\\trunk\\Infrastructure\\MsBuild\\lib\\yuicompressor-2.4.2.jar\"";
StringBuilder stringBuilder = new StringBuilder("-jar " + compressorPath + " ");
stringBuilder.Append("\"" + fileInfo.FullName + "\"");
stringBuilder.Append(" -o " + "\"" + outFileName + "\"");
Process p = new Process();
p.StartInfo.FileName = "\"C:\\Program Files (x86)\\Java\\jre6\\bin\\java\"";
p.StartInfo.Arguments = stringBuilder.ToString();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
}
return true;
}
は、その後、私はオリジナルズを削除しよう:
private void RemoveOrginalJs(FileInfo[] files)
{
foreach (var fileInfo in files)
{
File.Delete(fileInfo.FullName);
}
}
私は、各プロセスの実行後Process.closeを()しようとしたのですが、それは何の差延を行うものではありません。
あなたの側からこれ以上のフィードバック。それは今働いていますか? –