在“长路径感知”环境中对PathRelativePathTo的参数的限制
对于Windows 10上的长路径感知过程,我试图了解使用Windows Shell方法PathRelativePathTo时的参数限制。 在下面的示例中,我通过pinvoke使用C#来调用该方法。 我在下面给出了多个示例及其输出。注意: 所有这些示例都为“ from”提供目录路径,为“ to”提供文件路径(这些路径实际上都不存在于磁盘上) 我的观察是 “短” MAX_PATH长度(260)以下的路径返回成功,并具有预期结果。 一些路径在 “短” MAX_PATH回报的成功与正确的结果。 一些路径在 “短” MAX_PATH回报的成功与错误的答案(哎呀!) 一些更长的路径返回错误。但是,它不是某个固定的最大长度。 资源: class Program { static class Native { // https://www.pinvoke.net/default.aspx/shlwapi.pathrelativepathto // https://docs.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathrelativepathtoa [DllImport("shlwapi.dll", SetLastError = true, CharSet = CharSet.Auto)] [return: MarshalAs(UnmanagedType.Bool)] internal static extern bool PathRelativePathTo([Out] StringBuilder pszPath, [In] string pszFrom, [In] …