像我之前的一些人一样,我对最大路径长度限制感到困惑。我使用 robocopy 和新的 Windows 10 机器成功地将文件树传输到 NAS。
在源计算机上,所有文件都在 260 个字符的限制内。使用 robocopy 将它们从路径 e: 复制到路径 \nas-3tb-backup\Public\Save_2019。之后我想用一个小的 C# 程序检查它,但我没有成功。FileInfo 和 File.OpenRead 都无法通过 NAS 名称找到具有扩展路径的文件。记事本、Visual Studio Code、Windows Explorer 等所有程序在显示或打开此文件时都没有问题。我尝试使用此处显示的前缀 \\?\:https ://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file?redirectedfrom=MSDN#maxpath但是 \\?\\\nas-3tb-backup---- 的尝试失败了。链接的文章中仍然有提示更改注册表时扩展路径。我想避免这种情况,因为那时我将不得不更改所有 Windows 计算机,并且由于 Windows 自己的程序可以在没有注册表黑客的情况下工作,所以对我来说应该是可能的。
string fn1 = @"\\?\\\nas-3tb-backup\Public\VeryLongPathToFile";
bool b1 = new FileInfo(fn1).Exists;
if (b1) {
using (FileStream stream = File.OpenRead(fn1)) {
var b = stream.ReadByte();
}
}