1

この質問に関して:

File.Copy() とシンボリック リンク

私はその行を見つけます

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"));
}
4

0 に答える 0