从 File.Copy 中排除系统硬链接
Exclude System Hardlinks from File.Copy
所以我的问题是我想导出我的用户帐户。
但是在 C:\%user%\AppData\Local\
里面是 System Hardlinks
例如: Application Data
我显然没有权利使用它们。
有没有办法从复制过程中排除那些System Hardlinks
?
我不确定硬链接是什么意思,但这可能对您有所帮助
foreach (var dir in new DirectoryInfo(@"c:\users\xxxxxx\AppData\Local").GetDirectories())
{
if (dir.Attributes.HasFlag(FileAttributes.ReparsePoint))
{
Console.WriteLine(dir.Name + " is symbolic, skip it");
}
else
{
//do your copy here
}
}
所以我用 Exception handling
解决了这个问题,这样做 way
:
FileInfo[] sourceFiles = null;
try {
sourceFiles = new DirectoryInfo(sourcePath).GetFiles();
} catch (Exception ex) {
WriteLog(LogPath, ex + "");
return;
}
由于我对 exception handling
有点陌生,所以在开始的几个小时里我无法解决这个问题。
所以我的问题是我想导出我的用户帐户。
但是在 C:\%user%\AppData\Local\
里面是 System Hardlinks
例如: Application Data
我显然没有权利使用它们。
有没有办法从复制过程中排除那些System Hardlinks
?
我不确定硬链接是什么意思,但这可能对您有所帮助
foreach (var dir in new DirectoryInfo(@"c:\users\xxxxxx\AppData\Local").GetDirectories())
{
if (dir.Attributes.HasFlag(FileAttributes.ReparsePoint))
{
Console.WriteLine(dir.Name + " is symbolic, skip it");
}
else
{
//do your copy here
}
}
所以我用 Exception handling
解决了这个问题,这样做 way
:
FileInfo[] sourceFiles = null;
try {
sourceFiles = new DirectoryInfo(sourcePath).GetFiles();
} catch (Exception ex) {
WriteLog(LogPath, ex + "");
return;
}
由于我对 exception handling
有点陌生,所以在开始的几个小时里我无法解决这个问题。