当我尝试将文件复制到某个位置时,这是崩溃并给我这个错误的部分。
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" />
我确认在设置中,应用清单设置为此文件,但它仍然给我同样的错误。
我也试过这个活动,虽然我认为它不会起作用,因为它是一个目录而不是一个文件:
File.SetAttributes(startupDirectory, FileAttributes.Normal);
这是WinForms,我在Windows 7上,但也希望它适用于Windows 8+的世界。我该怎么做?
提前致谢!
答案 0 :(得分:3)
此错误由Windows错误触发。它没有专门的“这绝对没有意义”错误代码,它只是产生一个“访问被拒绝”错误代码。哪个.NET转换为UnauthorizedAccessException。
这里的“毫无意义”问题是您尝试使用文件复制方法复制目录。目录不是文件。复制目录需要先创建一个新目录,然后复制目录中的所有文件。 .NET有一种方法,大多数C#程序员倾向于认为它是“错误的”命名空间。它是Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory()。
但是你需要多考虑一下这个问题,当然没有必要调用新目录“startup.exe”。可能意味着从启动目录中复制特定的文件,我们无法猜测它可能是什么。
答案 1 :(得分:2)
尝试
public static void Copy(string sourceFileName, string destFileName);
第一个重载是源第二个重载是目的地我认为原因可能是这个
File.Copy("Startup.exe",startupDirectory);
尝试将访问权限设置为&#34;完全控制&#34;对于您正在阅读/保存文件的.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意味着以下三种情况之一:
答案 2 :(得分:1)
试试这个:
File.Copy(startupDirectory, "Startup.exe", true);
File.SetAttributes("Startup.exe", FileAttributes.Normal);
答案 3 :(得分:1)
您可以使用管理权限运行Visual Studio。 (假设Windows7,在开始菜单中右键单击Visual Studio图标,然后单击&#34;以管理员身份运行&#34;)