java路径为什么拒绝访问_为什么拒绝访问路径?

回答(26)

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

我也遇到了问题,因此我在这篇文章上磕磕绊绊 . 我在复制/删除之前和之后添加了以下代码行 .

Delete

File.SetAttributes(file, FileAttributes.Normal);

File.Delete(file);

Copy

File.Copy(file, dest, true);

File.SetAttributes(dest, FileAttributes.Normal);

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

UnauthorizedAccessException 表示以下四种情况之一:

来电者没有所需的权限 .

该文件是正在使用的可执行文件 .

Path是一个目录 .

Path指定了只读文件 .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

这是一个老问题,但我在搜索时碰到了它 . 事实证明我在SaveAs的保存路径中缺少实际的文件名组件...

string uploadPath = Server.MapPath("~/uploads");

file.SaveAs(uploadPath); // BAD

file.SaveAs(Path.Combine(uploadPath, file.FileName)); // GOOD

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

当用户尝试连接到您的网站时,IIS会将连接分配给 IUSER_ComputerName 帐户,其中ComputerName是运行IIS的服务器的名称 . 默认情况下, IUSER_ComputerName 帐户是Guests组的成员 . 该组有安全限制 . 尝试对该文件夹进行IUSER_ComputerName的大访问

Here是关于IIS安全性的非常好的描述答案

希望这可以帮助

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

右键单击Visual studio并单击 Run as Administrator

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

我收到了错误,因为我没有意识到目标应该是一个文件 . 我有一个文件夹作为第二个参数(在cmd中工作) . 我得到 Unhandled Exception: System.UnauthorizedAccessException: Access to the path is denied. 因为C# File.Move 想要一个文件,不仅仅是第一个参数,而是第二个参数,所以如果你把一个目录作为第二个参数,当你有一个名为 c:\crp 时,它会尝试写一个像 c:\crp 这样的文件 c:\crp .

这将是 incorrect File.Move(args[0],"c:\\crp");

所以,这将是 correct File.Move(args[0],"c:\\crp\\a.a");

File.Copy 也一样

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

如果这是出现此问题的IIS网站,请检查该站点或应用程序使用的应用程序池的高级设置的Identity属性 . 您可能会发现它已设置为ApplicationPoolIdentity,在这种情况下,这是必须有权访问该路径的用户 .

或者您可以使用旧样式并简单地将Identity设置为Network Service,并为Network Service用户提供对该路径的访问权限 .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

操作系统因I / O错误或特定类型的安全错误而拒绝访问时引发的异常 .

我碰到了同样的事情 . 检查以确保该文件不是隐藏的 .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

您需要修改您尝试从中删除/保存到的文件夹的权限 . 右键单击包含文件夹,然后使用“安全”选项卡允许您的应用程序运行的用户的修改权限 .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

我得到了这个错误并在一瞬间解决了它 . 不知道为什么我的所有文件夹都是只读的,我取消了只读并应用它 . 但是,它仍然是只读的 . 所以我将文件移动到根文件夹中,它的工作原理 - 太奇怪了 .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

我在共享服务器上新移动的网站上遇到了同样的问题 . 解决了通过Web主机面板(DotNetPanel)设置true“允许写入权限” . 因此,如果您在查看所有代码之前都在共享服务器中,请查看服务器配置并节省大量时间 .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

请注意,如果您尝试从代码中访问共享文件夹路径,则不需要通过安全选项卡向physicial文件夹提供适当的权限 . 您还需要通过“共享”选项卡与相应的应用程序池用户“共享”该文件夹

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

检查文件属性 . 如果选中只读,则取消选中它 . 这是我在UnauthorizedAccessException中的个人问题 .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

我正面临这个错误,因为

有时当我 Combine 带有文件名的路径和 FileName = ""

它成为 Path Directory 而不是 file 这是一个问题mentioned above

所以你必须检查 FileName 喜欢这个

if(itemUri!="")

File.Delete(Path.Combine(RemoteDirectoryPath, itemUri));

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

当操作系统因I / O错误或安全性错误而拒绝访问时,将引发UnauthorizedAccessException异常 .

如果您尝试访问文件或注册表项,请确保它是 not read-only .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

删除文件时我遇到了确切的错误 . 它是在服务帐户下运行的Windows服务,即使它具有对文件夹的完全控制权,也无法从共享文件夹中删除.pdf文档 .

对我有用的是导航到共享文件夹>高级>共享>添加的安全选项卡 .

然后,我将服务帐户添加到管理员组,应用更改,然后服务帐户就可以对该文件夹中的所有文件执行所有操作 .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

当我的窗口服务开始抛出异常时,我也遇到了这个问题

System.UnauthorizedAccessException: Access to the path "C:\\Order\\Media

44aa4857-3bac-4a18-a307-820450361662.mp4" is denied.

因此,作为解决方案,我检查了与我的服务相关联的用户帐户,如下面的屏幕截图所示

fsI3v.jpg

所以在我的情况下它是 NETWORK SERVICE

然后转到 folder properties 以检查相关用户帐户是否也存在于其权限选项卡下 . 它在我的情况下失踪了,当我添加它并解决了我的问题 .

有关更多信息,请查看以下屏幕截图

zDEdV.jpg

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

对我来说同样的问题,我指的是文件夹而不是文件 .

所以在路径中确保给出路径文件名

System.IO.File.WriteAllBytes("path", bytearray);

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

在服务器上部署后尝试执行此操作时,我也遇到了同样的问题:

dirPath = Server.MapPath(".") + "\\website\\" + strUserName;

if (!Directory.Exists(dirPath))

{

DirectoryInfo DI = Directory.CreateDirectory(dirPath);

}

string filePath = Server.MapPath(".") + "\\Website\\default.aspx";

File.Copy(filePath, dirPath + "\\default.aspx", true);

File.SetAttributes(dirPath + "\\default.aspx", FileAttributes.Normal);

我在IIS中授予了包括管理员在内的其他组的权限,我的问题得到了解决 .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

我发现这个错误可能发生在DESIGN MODE而不是?执行模式...如果您正在执行某些操作,例如创建需要访问.INI或.HTM文件(配置文件,帮助文件)的类成员,您可能不希望初始化声明中的项目,但稍后将其初始化在FORM_Load()等...初始化时...使用保护IF语句:

/// FORM: BasicApp - Load

private void BasicApp_Load(object sender, EventArgs e)

{

// Setup Main Form Caption with App Name and Config Control Info

if (!DesignMode)

{

m_Globals = new Globals();

Text = TGG.GetApplicationConfigInfo();

}

}

这将使MSVS Designer在设计模式下不会尝试创建INI或HTM文件 .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

当我尝试在移动或创建文件夹后非常快速地重命名文件夹时,我抛出了这个错误 .

一个简单的 System.Threading.Thread.Sleep(500); 解决了它:

void RenameFile(string from, string to)

{

try

{

System.IO.File.Move(from, to)

}

catch

{

System.Threading.Thread.Sleep(500);

RenameFile(from, to);

}

}

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

在我的特殊情况下,我反复创建和删除10000个文件夹 . 在我看来,问题在于,虽然方法 Directory.Delete(path, true) 返回,但是底层OS机制可能仍然是从磁盘中删除文件 . 当我在删除旧文件夹后立即开始创建新文件夹时,其中一些文件夹仍处于锁定状态,因为它们尚未完全删除 . 我收到System.UnauthorizedAccessException:"Access to the path is denied" .

K4L4m.png

在 Directory.Delete(path, true) 之后使用 Thread.Sleep(5000) 解决了这个问题 . 我绝对同意这不安全,我不鼓励任何人使用它 . 我希望在这里有一个更好的方法来解决这个问题,以改善我的答案 . 现在我只想知道为什么会发生这种异常 .

class Program

{

private static int numFolders = 10000;

private static string rootDirectory = "C:\\1";

static void Main(string[] args)

{

if (Directory.Exists(rootDirectory))

{

Directory.Delete(rootDirectory, true);

Thread.Sleep(5000);

}

Stopwatch sw = Stopwatch.StartNew();

CreateFolder();

long time = sw.ElapsedMilliseconds;

Console.WriteLine(time);

Console.ReadLine();

}

private static void CreateFolder()

{

var one = Directory.CreateDirectory(rootDirectory);

for (int i = 1; i <= numFolders; i++)

{

one.CreateSubdirectory(i.ToString());

}

}

}

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

首先检查路径是否在驱动器号后面缺少冒号(:)字符 . 如果冒号没有丢失,则可以检查是否为该路径授予了访问/写入权限 . 我有同样的问题,我只是错过了冒号,许可,其他一切都很好 .

C:\folderpath

会工作正常,但是,

C\folderpath .........(missing colon)

会给你访问拒绝错误 .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

我试图使用System.IO.File.OpenWrite(path)

并且它不起作用,因为我只是将OpenWrite()传递给目录的路径,但它需要一个路径到你想要写的文件 . 因此,包含最终filename.extension的完整路径需要传递到OpenWrite以避免UnauthorizedAccessException

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

对于那些试图制作UWP(通用Windows)应用程序的人来说,文件权限受到更多限制,一般来说默认是拒绝 . 它还取代了系统用户权限 . 您基本上只能访问其中的文件

您的安装位置

您的AppData位置

通过File或Folder选择器选择的文件

App Manifest中要求的位置

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

如果您的安全文件功能很有可能阻止您的操作 . 这是一种勒索软件保护形式,它带有一些更高级的版本 .

请务必授予您的申请在BitDefender中访问并再试一次 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值