我正在编写一个程序,该程序需要从系统上的任何位置读取文件。该程序的某些用户的路径超过了 260 个字符的限制。OpenFileDialog
不适用于路径超过 260 个字符的文件。
我试过同时使用System.Windows.Forms.OpenFileDialog
和Microsoft.Win32.OpenFileDialog
。在前者的情况下,当我在导航到并选择文件后单击“打开”时,窗口不会关闭,程序也不会继续。在后者的情况下,当我单击“打开”时,窗口将关闭,但路径是一个空字符串。
我已经更新了我电脑上的注册表。我已经编辑了应用程序清单文件。我会尝试将“//?/”字符串添加到我的路径中,但是没有要添加的路径。
var dialog = new OpenFileDialog
{
// initialize dialog
}
if (dialog.ShowDialog() == DialogResult.OK) // DialogResult.OK replaced with true if using Microsoft.Win32.OpenFileDialog
{
// if when using System.Windows.Forms.OpenFileDialog, I will never get to this point
// if using Microsoft.Win32.OpenFileDialog, I will get here but dialog.FileNames will be empty
}
如果我更新了注册表和应用程序清单,我希望上面的代码在长路径和短路径上都能正常工作。我怀疑这只是不支持,但我所有的搜索都显示人们提供的解决方案要么不起作用,要么只在特定情况下起作用。