この質問に関して:
私はその行を見つけます
SafeFileHandle fileHandle =
CreateFile(symlink.FullName, 0, 2,
IntPtr.Zero,
CREATION_DISPOSITION_OPEN_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS,
IntPtr.Zero);
エラーで失敗しています
システムは、指定されたファイルを見つけることができません
次の非常に特殊なケースの場合:
元のファイルは親ディレクトリにあります
C:\Temp\SymlinkUnitTest\Original.txt [実ファイル]
シンボリック リンクは実際のサブディレクトリにあります
C:\Temp\SymlinkUnitTest\Work\Symlink.txt [上記ファイルへのシンボリックリンク]
他の多くの場合でも機能するようです (参照されたポストパスのすべての単体テスト)。
この特定のケースについて何か特別なことはありますか?
参考までに、失敗している単体テストを次に示します。
[TestMethod]
public void FileSymlinkWork()
{
string file = @"C:\Temp\SymlinkUnitTest\Work\Symlink.txt";
Assert.IsTrue(File.Exists(file)); // Succeeds
// Following line throws Exception:
string actual = new FileInfo(file).GetSymbolicLinkTarget();
Assert.IsTrue(actual.EndsWith(@"SymlinkUnitTest\Original.txt"));
}