C# 错误:mscorlib.dll中发生“System.UnauthorizedAccessException”类型的未处理异常

C# 错误:mscorlib.dll中发生“System.UnauthorizedAccessException”类型的未处理异常,c#,winforms,file,copy,windows-7-x64,C#,Winforms,File,Copy,Windows 7 X64,这是崩溃的部分,当我尝试将文件复制到某个位置时,会出现此错误 string startupDirectory = "C:\\Users\\Tyler\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup"; File.Copy(startupDirectory, "Startup.exe"); 我已联机阅读并尝试管理员权限,并已创建app.manifest文件: <requestedExecutionLe

这是崩溃的部分,当我尝试将文件复制到某个位置时,会出现此错误

string startupDirectory = "C:\\Users\\Tyler\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup";
File.Copy(startupDirectory, "Startup.exe");
我已联机阅读并尝试管理员权限,并已创建app.manifest文件:

<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
这是WinForms,我在windows 7上,但也希望它在windows 8+上运行。我该怎么做

提前谢谢

试试看

public static void Copy(string sourceFileName, string destFileName);
第一个过载是源,第二个过载是目的,我想原因可能是这样的

File.Copy("Startup.exe",startupDirectory);
尝试将从中读取/保存文件的.Net用户的访问权限设置为完全控制

对于特定文件的IIS服务器中的拒绝访问错误,请执行以下步骤

1- Goto to C:\\Users\\Tyler\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup

2- Right click on your file -> Properties -> Pop Up of User properties appears -> click on Security tab-> click on Edit -> select Users-> tick on Allow Full Control -> Click Ok
这肯定会解决拒绝访问的问题

UnauthorizedAccessException指以下三种情况之一:

调用方没有所需的权限。 路径是一个目录。 为只读文件指定的路径。 试试这个:

    File.Copy(startupDirectory, "Startup.exe", true);
    File.SetAttributes("Startup.exe", FileAttributes.Normal);

此异常由Windows错误触发。它没有一个专用的这个绝对没有意义的错误代码,它只是生成一个拒绝访问的错误代码。NET转换为UnauthorizedAccessException

这里没有意义的问题是,您试图使用文件复制方法复制目录。目录不是文件。复制目录需要先创建一个新目录,然后复制目录中的所有文件。NET有一个方法,大多数C程序员倾向于认为它是一个“错误”的名称空间。它是Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory


但是您需要更多地考虑这个问题,调用新的目录startup.exe当然没有意义。A可能是要从启动目录复制特定文件,我们无法猜测它可能是什么。

您可以使用管理权限运行Visual Studio。假设使用Windows7,右键单击“开始”菜单中的Visual Studio图标,然后单击“以管理员身份运行”

源文件名的名称是什么?在startupDirectory变量中,您提到过吗?标题中的解决方案对任何人都没有帮助。如果你在给出的答案之外找到了解决方案,你可以回答自己的问题并将其标记为已接受答案。这样,其他遇到同样问题的人也会得到帮助。我对第一种选择感到困惑。。。第二个和第三个不起作用,第四个我找不到_IUSRS@Tyler13579将完全控制权授予用户完全控制权已被选中并灰显,因此我无法更改。第二个选项给了我此错误在mscorlib.dll中发生了类型为“System.IO.IOException”的未处理异常附加信息:目标文件C:\Users\Tyler\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup是一个目录,而不是一个文件。@Tyler13579请尝试使用此选项
    File.Copy(startupDirectory, "Startup.exe", true);
    File.SetAttributes("Startup.exe", FileAttributes.Normal);