我有这种方法可以将我的 USB 中的所有图像复制到硬盘驱动器,比如C:\
,但是由于无法访问system-files/directories
而引发异常。
如果我跳过SearchOption.AllDirectories
参数,它可以正常工作,但我的主要目的是从USB及其子目录中复制所有图像
public void Copy(string sourceDir, string targetDir)
{
try
{
var files = System.IO.Directory.GetFiles(sourceDir, "*.jpg",
SearchOption.AllDirectories);
foreach (string srcPath in files)
{
File.Copy(srcPath, srcPath.Replace(sourceDir, targetDir), true);
}
}
catch (System.UnauthorizedAccessException)
{
}
}
如何跳过system-files/directories
?
答案 0 :(得分:0)
这样的事情可能会有所帮助:(未经测试)
foreach (string srcPath in files)
{
FileAttributes attributes = File.GetAttributes(srcPath);
bool isSystem = ((attributes & FileAttributes.System) == FileAttributes.System);
bool isDirectory = ((attributes & FileAttributes.Directory) == FileAttributes.Directory);
if (!isSystem && !isDirectory)
{
File.Copy(srcPath, srcPath.Replace(sourceDir, targetDir), true);
}
}