- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我将 Windows API 代码包中的 CommonOpenFileDialog 用作文件夹选择器对话框。我将 InitialDirectory 属性设置为 Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)。但是,当我显示对话框时,地址栏中的路径是 Libraries\Documents(不是我期望的 C:\users\craig\my documents)。此外,如果我只是按下“选择文件夹”按钮,我会看到一个对话框,提示“您选择了一个库”。请改为选择一个文件夹。'
有人知道为什么我的文件路径被忽略,转而使用“libraries\documents”吗?更重要的是,如何让对话框尊重我传入的 InitialDirectory 值?
我在对话框中使用的代码是:
if (CommonFileDialog.IsPlatformSupported)
{
var folderSelectorDialog = new CommonOpenFileDialog();
folderSelectorDialog.EnsureReadOnly = true;
folderSelectorDialog.IsFolderPicker = true;
folderSelectorDialog.AllowNonFileSystemItems = false;
folderSelectorDialog.Multiselect = false;
folderSelectorDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
folderSelectorDialog.Title = "Project Location";
if (folderSelectorDialog.ShowDialog() == CommonFileDialogResult.Ok)
{
ShellContainer shellContainer = null;
try
{
// Try to get a valid selected item
shellContainer = folderSelectorDialog.FileAsShellObject as ShellContainer;
}
catch
{
MessageBox.Show("Could not create a ShellObject from the selected item");
}
FilePath = shellContainer != null ? shellContainer.ParsingName : string.Empty;
}
}
谢谢,
-克雷格
最佳答案
首先,很抱歉我花了这么长时间才理解您的问题。
当我尝试这个时,我看到的消息是:
Cannot operate on 'Libraries\Documents' because it is not part of the file system.
没有更多要说的了。库是一个虚拟文件夹,它是各种不同的真实文件夹的合并。
没有真正的方法可以避免这个错误。您已要求对话框返回文件夹,但用户尚未选择文件夹。因此,对话无法履行其在交易中的职责。
如果您进一步深入文件夹结构,进入真正的文件夹,那么对话框将返回一个真正的值。
关于c# - 如何让 CommonOpenFileDialog 的 InitialDirectory 成为用户的 MyDocuments 路径,而不是 Libraries\Documents?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5425758/
我正在使用 CommonOpenFileDialog(来自 Windows API 代码包)选择一个目录,然后它以某种方式将我的窗口发送到后面。这真的很令人沮丧,因为我必须在任务栏中找到它并再次单击它
问题 我正在尝试使用 CommonOpenFileDialog 的文件夹选择器,如 this answer 中所述.问题是,即使是一个非常精简的示例项目,我在尝试使用 CommonOpenFileDi
我正在使用 Microsoft 的 CommonOpenFileDialog允许用户选择一个文件夹,但是当对话框出现时没有文件可见。当 IsFolderPicker 设置为 true 时,是否可以显示
我一直在开发一个 Windows 窗体应用程序,并且最近添加了一个简单的设置页面,允许用户选择一个文件夹作为输出的位置。 OpenFileDialog 很难看而且不好用,所以我在 WindowsAPI
我正在尝试使用 CommonOpenFileDialog 来允许用户选择一个文件夹,但也可以在对话框中查看该文件夹内的文件。目前我的代码只允许用户选择一个文件夹,但其中的文件是隐藏的,这导致用户认为他
我将 Windows API 代码包中的 CommonOpenFileDialog 用作文件夹选择器对话框。我将 InitialDirectory 属性设置为 Environment.GetFolde
我是一名优秀的程序员,十分优秀!