首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#无法删除文件- System.UnauthorizedAccessException

C#无法删除文件- System.UnauthorizedAccessException
EN

Stack Overflow用户
提问于 2010-11-18 22:37:44
回答 3查看 2K关注 0票数 0

我正在运行一个单独的进程,它最小化了javascript文件的文件夹。此过程为每个js文件创建一个附加了"_min.js“的新文件。下一步是删除旧的js文件(没有“_min.js”的文件)。由于某些原因,File.Delete无法删除这些文件。

看起来某些进程仍然拥有这些文件的句柄。当我尝试删除时,我得到了一个System.UnauthorizedAccessException异常。我有足够的权限访问此文件夹。谁能告诉我我忽略了什么?

我在这个循环中多次运行这个进程。

代码语言:javascript
运行
复制
 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;
        }

然后我试着摘除器官:

代码语言:javascript
运行
复制
   private void RemoveOrginalJs(FileInfo[] files)
    {
        foreach (var fileInfo in files)
        {
                File.Delete(fileInfo.FullName);
        }
    }

在每次进程运行后,我都会尝试Process.close(),但这没有什么区别。

EN

Stack Overflow用户

回答已采纳

发布于 2010-11-18 23:32:19

我不知道您正在启动的工具,但等待它的完成似乎是正确的事情:

代码语言:javascript
运行
复制
p.Start();
p.WaitForExit();
票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4215908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档