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