How to get access to system folders when enumerating directories?

前端 未结 3 847
野趣味
野趣味 2020-12-17 08:00

I am using this code:

DirectoryInfo dir = new DirectoryInfo(\"D:\\\\\");
foreach (FileInfo file in dir.GetFiles(\"*.*\",SearchOption.AllDirectories))
{
    M         


        
3条回答
  •  不思量自难忘°
    2020-12-17 08:44

    There is no way in .NET to override privileges of the user you are running this code as.

    There's only 1 option really. Make sure only admin runs this code or you run it under admin account. It is advisable that you either put "try catch" block and handle this exception or before you run the code you check that the user is an administrator:

    WindowsIdentity currentIdentity = WindowsIdentity.GetCurrent();
    WindowsPrincipal currentPrincipal = new WindowsPrincipal(currentIdentity);
    if (currentPrincipal.IsInRole(WindowsBuiltInRole.Administrator))
    {
    DirectoryInfo dir = new DirectoryInfo("D:\\");
    foreach (FileInfo file in dir.GetFiles("*.*",SearchOption.AllDirectories))
    {
    MessageBox.Show(file.FullName);
    }
    }
    

提交回复
热议问题