我使用MFC的CFileDialog来选择文件。我只对完整的文件路径感兴趣,因为我的应用程序不会直接打开它。虽然文件对话框拒绝通过声明选择文件:"您没有读取权限来打开此文件"。 (这是正确的 - 我没有读取权限;我不想打开该文件。)
那么,Windows下是否有办法通过文件对话框进入路径?
这是我的代码:
CFileDialog dlg(true, nullptr, nullptr, OFN_FILEMUSTEXIST, nullptr, nullptr, 0, true);
dlg.DoModal();
答案 0 :(得分:1)
我找到了(ab)使用保存文件对话框的解决方法,该对话框不会检查您是否对文件具有读/写权限:
CFileDialog dlg(false, nullptr, nullptr, OFN_FILEMUSTEXIST, nullptr, nullptr, 0, true)
有人可能想要更改对话框的标题,因为应用程序不会将任何内容保存到所选文件中:
dlg.m_ofn.lpstrTitle = "Select file";
答案 1 :(得分:0)
文件打开对话框通过尝试打开文件来实现OFN_FILEMUSTEXIST
。
如果您没有读取打开文件的权限,则会失败。
解决方案是不使用OFN_FILEMUSTEXIST
标志,并在需要时执行您自己的检查(您可以在对话框关闭后或在使用挂钩关闭之前执行此操作)。