How can I use Directory.GetFiles skipping UnauthorizedAccessException? - c#

When I use System.IO.Directory.GetFiles method in C:\, an error is raised:
Access to the path 'c:\System Volume Information' is denied.
How can I handle that?

It's a hidden system folder and the reason you are getting this error is because your application is running under your local account.

Related

Synchronization error in Kentico 8.0.21

While trying to synchronize in Kentico, a user go this error:
Synchronization server error: Exception occurred: Access to the path 'C:\inetpub\wwwroot\92YOrg\CMSFiles\f3\f3ef02ff-84bf-4ccb-b815-b807d8fd35f6.jpg' is denied.
The thing is that the file in question is actually on the E drive instead of the C drive, as it says in the error. So why would Kentico think to look in the C drive? I'm guessing that there is a setting somewhere that needs to be changed, but I've had no luck finding it. Thanks for your time.
First, I'd go back to your website in IIS and actually determine where in the file system your website is mapped to.
Second, ensure you have proper permissions set on the directories in the file system.
Try to check System > File > Storage in Settings application.

File visible as normal user but not as Admin

I am building an universal updater for my company, and when I try to access a mapped network drive, the program throws a file not found exception when run as admin. When the file is run as a normal user the files are visible, but throws an Unauthorized Exception due to the fact that the files are copied to the Program Files (company policy).
Edit
The code that throws the FileNotFound Exception is FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(rdrInner.GetString(2)); and the Unauthorized Exception is thrown by File.Copy(pi.RemotePath, pi.Path, true);
Mapped drives are part of the user profile, so you need to map the drive whilst logged in as the admin user. This is why using a mapped drive is a bad idea--can't you use a fully qualified UNC path instead? See http://msdn.microsoft.com/en-gb/library/gg465305.aspx for an explanation of UNC paths.

Can I tell the nonexistent path in case of DirectoryNotFound exception?

I am building an application which copies or moves files from and to various network drives. It seems to me that File.Move and File.Copy throws:
System.IO.DirectoryNotFoundException: Could not find a part of the
path
due to permission problems for user running the application. However, the exception message does not contain information of which folder the application fails to find (ex.Message is only Could not find a part of the path and there is no inner exception), so it is hard for the users to check which permission they need to check by looking at the exception message directly.
Is there a way to find which folder is causing the exception to be thrown? The documentation of the exception does not seem to show any property for this.

Access denied error while creating sub directory inside the directory

I am facing one problem while creating the subdirectory inside a directory.The error message shown is 'Access to the path 'tempimages' is denied.'
I have given full access permission to some of the user accounts in the drive where directory is to be created via application.
Now in the global.asax i have registered one method which will allow the above user accounts to create a directory.I am able to create parent directory after assigning the access rule for the user accounts.
But when i try to create the subdirectory inside that directory using the same access rules.I get the above error.
string useraccountForDirectoryCreate = System.Environment.UserDomainName;
dacl.AddAccessRule(new System.Security.AccessControl.FileSystemAccessRule(useraccountForDirectoryCreate,
System.Security.AccessControl.FileSystemRights.FullControl,
System.Security.AccessControl.InheritanceFlags.ContainerInherit |
System.Security.AccessControl.InheritanceFlags.ObjectInherit,
System.Security.AccessControl.PropagationFlags.None,
System.Security.AccessControl.AccessControlType.Allow));
Directory.CreateDirectory(imageDirectory, dacl);
Directory.CreateDirectory(tempImageDirectory, dacl);
DirectoryInfo obj = new DirectoryInfo(imageDirectory);
obj.CreateSubdirectory(ConfigurationManager.AppSettings["networkStoragePathTemp"].ToString(), dacl);//Access to the path 'tempimages' is denied
I did some search for the above case but to no success,
Please help,
Thanks S.
The Error message clearly saying this is happening due to the Permission problem while creating the Sub directory in the Root Directory.
If you are using IIS 7.5, try granting the group: IIS_IUSRS access, if the above uses a built in account.

C# ASP.NET File.OpenRead from UNC path: "Access to path.....is denied."

I'm attempting to read a PDF from a UNC path, i.e. \10.32.16.24\repositories\repository0001\VOL00001\ktappb01_024655001_0.PDF
My virtual directory ASP.NET site is being run under IUSR_machine_name.
Has anonymous access enabled as well.
I gave IUSR_machine_name full rights to the UNC share and as I step through my ASP.NET page's code behind onto the File.OpenRead(filepath) method, it throws an exception: "Access to path \10.32.16.24\repositories\repository0001\VOL00001\ktappb01_024655001_0.PDF is denied".
I tried granting the ASPNET user full rights to the share as well with the same result.
At this point I'm completely lost for a resolution.
I'm running IIS6.
On both machines security eventlog, check what user has been denied access. It is most likely a different user.
I was able to find the user by logging it. I'd made a stupid error in my code that wasn't giving me the result I was assuming I was going to get.

Categories