nic*_*wdy 141 c# asp.net io unauthorizedaccessexcepti
我有一个问题,我试图删除我的文件,但我得到一个例外.
if (result == "Success")
{
if (FileUpload.HasFile)
{
try
{
File.Delete(Request.PhysicalApplicationPath + app_settings.login_images + txtUploadStatus.Text);
string filename = Path.GetFileName(btnFileUpload.FileName);
btnFileUpload.SaveAs(Request.PhysicalApplicationPath + app_settings.login_images + filename);
}
catch (Exception ex)
{
Message(ex.ToString());
}
}
}
Run Code Online (Sandbox Code Playgroud)
另外我应该注意,我尝试删除的文件夹可以完全控制网络服务.
完整的异常消息是:
System.UnauthorizedAccessException:拒绝访问路径'C:\ Users\gowdyn\Documents\Visual Studio 2008\Projects\hybrid\hybrid\temp_loginimages\enviromental.jpg'.at System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath)at System.IO.File.Delete(String path)at hybrid.User_Controls.Imgloader_Add_Edit_Tbl.btnUpdate_Click(Object sender,EventArgs e)in C:\ Users\gowdyn\Documents\Visual Studio 2008\Projects\hybrid\hybrid\User_Controls\Imgloader_Add_Edit_Tbl.ascx.cs:第242行
有任何想法吗?
ria*_*ndl 174
我也遇到了问题,因此我在这篇文章上磕磕绊绊.我在复制/删除之前和之后添加了以下代码行.
删除
File.SetAttributes(file, FileAttributes.Normal);
File.Delete(file);
Run Code Online (Sandbox Code Playgroud)
复制
File.Copy(file, dest, true);
File.SetAttributes(dest, FileAttributes.Normal);
Run Code Online (Sandbox Code Playgroud)
Cra*_*Tim 153
根据File.Delete方法 ...
一个UnauthorizedAccessException
装置的4件事情之一:
And*_*son 26
这是一个老问题,但我在搜索时碰到了它.事实证明我在SaveAs的保存路径中缺少实际的文件名组件...
string uploadPath = Server.MapPath("~/uploads");
file.SaveAs(uploadPath); // BAD
file.SaveAs(Path.Combine(uploadPath, file.FileName)); // GOOD
Run Code Online (Sandbox Code Playgroud)
bar*_*lop 13
我收到了错误,因为我没有意识到目标应该是一个文件.我有一个文件夹作为第二个参数(在cmd中工作).我得到了Unhandled Exception: System.UnauthorizedAccessException: Access to the path is denied.
因为C#File.Move
想要一个文件,不仅仅是第一个参数,而是第二个参数,所以如果你把一个目录作为第二个参数,它就会尝试编写一个文件,就像c:\crp
你有一个目录一样c:\crp
.
这是不正确的 File.Move(args[0],"c:\\crp");
所以,这是正确的 File.Move(args[0],"c:\\crp\\a.a");
同样的道理 File.Copy
小智 7
我也遇到同样的问题,我指向的是文件夹而不是文件。
所以请确保在路径中给出路径+文件名
System.IO.File.WriteAllBytes("path", bytearray);
Run Code Online (Sandbox Code Playgroud)
如果这是出现此问题的IIS网站,请检查该站点或应用程序使用的应用程序池的高级设置的Identity属性.您可能会发现它已设置为ApplicationPoolIdentity,在这种情况下,这是必须有权访问该路径的用户.
或者您可以使用旧样式并简单地将Identity设置为Network Service,并为Network Service用户提供对该路径的访问权限.
当我的窗口服务开始抛出异常时,我也遇到了这个问题
System.UnauthorizedAccessException: Access to the path "C:\\Order\\Media
44aa4857-3bac-4a18-a307-820450361662.mp4" is denied.
Run Code Online (Sandbox Code Playgroud)
因此,作为解决方案,我检查了与我的服务关联的用户帐户,如下面的屏幕截图所示
所以在我的情况下是网络服务
然后转到文件夹属性以检查关联的用户帐户是否也存在于其权限选项卡下。它在我的情况下丢失了,当我添加它时它解决了我的问题。
有关更多信息,请查看以下屏幕截图
我试图使用 System.IO.File.OpenWrite(path)
它不起作用,因为我只是将 OpenWrite() 传递到目录的路径,但它需要一直到您要写入的文件的路径。因此需要将末尾包含 filename.extension 的完整路径传递给 OpenWrite 以避免 UnauthorizedAccessException
就我而言,问题在于诺顿。我的内部程序没有正确的数字签名,当它尝试删除文件时,它给出了 UnauthorizedAccessException。
如果它向您发出通知,您可以从那里进行处理。就我而言,它没有给出我注意到的通知。以下是如何防止诺顿阻止该程序。
归档时间: |
|
查看次数: |
514414 次 |
最近记录: |