Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error: An unhandled exception of type 'System.UnauthorizedAccessException' occurred in mscorlib.dll

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!

like image 787
Nullone Avatar asked Dec 18 '14 21:12

Nullone


4 Answers

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.

like image 110
Hans Passant Avatar answered Nov 10 '22 03:11

Hans Passant


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.
like image 31
midhu458 Avatar answered Nov 10 '22 05:11

midhu458


Try this:

    File.Copy(startupDirectory, "Startup.exe", true);
    File.SetAttributes("Startup.exe", FileAttributes.Normal);
like image 44
octavioccl Avatar answered Nov 10 '22 04:11

octavioccl


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")

like image 1
Hassan.Siddiqui Avatar answered Nov 10 '22 05:11

Hassan.Siddiqui