从 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 有点陌生,所以在开始的几个小时里我无法解决这个问题。