如何解决如果路径长度大于 256,C# OpenFileDialog 不会返回正确的路径
我正在编写一些小应用程序。应用程序将根据某些选择更改一些文件名。要打开文件,我使用 Microsoft.Win32.OpenFileDialog
。现在,当我想打开一个路径超过 256 个字符(我认为这就是数字)的文件时,路径会被截断。
例如,我有以下代码来打开文件:
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Multiselect = false;
openFileDialog.ValidateNames = false;
if (true == openFileDialog.ShowDialog())
{
//Working with the returned path
}
然后当我想打开这样的文件时:C:/a/very/long/file/path/with/more/than/256/characters.txt
,我退出对话框的路径是这样的:C:/a/very/long/file/path/with/more/than/256/CHaraC~1.TXT
文件名的长度为 230 个字符。
我该如何解决这个问题?
感谢您的帮助。
解决方法
如评论中所述,这里是 Peregrine 链接的摘要。
- 创建一个新的
.reg
文件。 - 将以下内容复制到文件中:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
"LongPathsEnabled"=dword:00000001
- 保存文件并执行。
- 右键单击您的项目并添加一个新的清单文件(如果尚不存在)。
- 打开
app.manifest
文件并添加以下内容:
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
<ws2:longPathAware>true</ws2:longPathAware>
</windowsSettings>
</application>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。