问题
This is the part that crashes and gives me this error is when I try to copy a file to a certain location.
string startupDirectory = "C:\\Users\\Tyler\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup";
File.Copy(startupDirectory, "Startup.exe");
I have read online and tried administrator rights and have created an "app.manifest" file:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
I confirmed that in the settings, the app manifest is set to this file, but it still gives me the same error.
I have also tried this event though I didn't think it would work because it is a directory not a file:
File.SetAttributes(startupDirectory, FileAttributes.Normal);
This is WinForms and I am on windows 7 but also want it to world for windows 8+. How do I do this?
Thanks in advance!
回答1:
Try
public static void Copy(string sourceFileName, string destFileName);
First overload is source 2nd overload is destination i think reason might be this
File.Copy("Startup.exe",startupDirectory);
Try setting the access permissions to "Full control" for the .Net user from where you are reading/saving the files.
For Access Denied Error in IIS server for particular file , please follow the below steps
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
This will surely solve the Access denied problem
An UnauthorizedAccessException means one of 3 things:
- The caller does not have the required permission.
- path is a directory.
- path specified a read-only file.
回答2:
This exception is triggered by a Windows error. It does not have a dedicated "this make absolutely no sense" error code, it just produces an "access denied" error code. Which .NET translates to a UnauthorizedAccessException.
The "makes no sense" problem here is that you are trying to copy a directory with a file copy method. Directories are not files. Copying a directory requires creating a new directory first, then copying all of the files in the directory. .NET has a method for that, most C# programmers tend to think it is the 'wrong' namespace. It is Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory().
But you'll need to think a bit more about this problem, it of course doesn't make sense to call the new directory "startup.exe". A probably meant to copy a specific file from the Startup directory, we can't guess what it might be.
回答3:
Try this:
File.Copy(startupDirectory, "Startup.exe", true);
File.SetAttributes("Startup.exe", FileAttributes.Normal);
回答4:
You can run Visual Studio with Administrative Rights. (Assuming Windows7, Right-click on Visual Studio icon in the start menu and click "Run as Administrator")
来源:https://stackoverflow.com/questions/27555770/error-an-unhandled-exception-of-type-system-unauthorizedaccessexception-occur