Я запускаю отдельный процесс, который минимизирует папку файлов javascript. Этот процесс создает новый файл для каждого из файлов js с добавленным к нему «_min.js». Следующим шагом является удаление старых файлов js (без "_min.js"). По какой-то причине File.Delete не может удалить эти файлы.
Может показаться, что какой-то процесс все еще имеет дескриптор этих файлов. Я получаю исключение 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 () после каждого запуска процесса, но это не делает различий.