我正在编写一个程序,需要从系统的任何位置读取文件。该程序的某些用户路径超过了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
}
如果我已经更新了注册表和应用清单,我希望上述代码在长路径和短路径方面可以正常工作。我怀疑这只是不受支持,但我所有的搜索都显示人们提供的解决方案要么不起作用,要么只适用于特定情况。