C# 访问目录

C# 访问目录,c#,C#,我想写一个程序,它可以复制我的本地电脑上的所有txt文件到一个特定的位置。这是没有问题,到目前为止,我有权打开该目录。有些目录抛出未经授权的异常。可以先访问然后读取文件吗?这就是我目前所做的: public List<FileInfo> SearchFiles(List<string> pattern) { List<FileInfo> files = new List<FileInfo>(); foreach (DriveIn

我想写一个程序,它可以复制我的本地电脑上的所有txt文件到一个特定的位置。这是没有问题,到目前为止,我有权打开该目录。有些目录抛出未经授权的异常。可以先访问然后读取文件吗?这就是我目前所做的:

public List<FileInfo> SearchFiles(List<string> pattern) 
{
    List<FileInfo> files = new List<FileInfo>();

    foreach (DriveInfo drive in DriveInfo.GetDrives())
    {
        var dirs = from dir in drive.RootDirectory.EnumerateDirectories()
                   select new
                   {
                       ProgDir = dir,
                   };

        foreach (var di in dirs)
        {
            try
            {
                foreach (string muster in pattern)
                {
                    foreach (var fi in di.ProgDir.EnumerateFiles(muster, SearchOption.AllDirectories))
                    {
                        try
                        {
                            files.Add(fi);
                        }
                        catch (UnauthorizedAccessException)
                        {

                        }
                    }
                }
            }
            catch (UnauthorizedAccessException)
            {
            }
        }
    }

    return files;
}
公共列表搜索文件(列表模式)
{
列表文件=新列表();
foreach(DriveInfo.GetDrives()中的DriveInfo驱动器)
{
var dirs=drive.RootDirectory.EnumerateDirectories()中的from dir
选择新的
{
ProgDir=dir,
};
foreach(在dirs中的变量di)
{
尝试
{
foreach(模式中的字符串集合)
{
foreach(di.ProgDir.EnumerateFiles(muster、SearchOption.AllDirectories)中的varfi)
{
尝试
{
文件。添加(fi);
}
捕获(未经授权的访问例外)
{
}
}
}
}
捕获(未经授权的访问例外)
{
}
}
}
归还文件;
}

带有字符串的列表给出了方法正在搜索的模式。例如,所有txt文件和名称中带有hallo的所有文件。

您可以尝试在应用程序运行时提升其权限


好主意,但似乎不起作用。例如,如果我想访问目录“Documents&Settings”,我仍然会收到UnauthorizedAccess异常