标签: folderbrowserdialog

IFileSaveDialog - 在Windows 7中选择文件夹

在Vista中,我一直在使用一个IFileSaveDialog让用户选择"另存为"文件夹.例如,用户导出图像文件夹,需要选择新的或现有的目标文件夹.

简而言之,代码如下:

IFileSaveDialog* dialog; // created
dialog->SetOptions(FOS_PICKFOLDERS);
dialog->Show(NULL);
dialog->GetResult(&shellItem)
Run Code Online (Sandbox Code Playgroud)

在Windows 7中,该FOS_PICKFOLDERS选项似乎已被禁止(并在API中标记为此选项).SetOptions呼叫的返回值是E_INVALIDARG.如果我使用IFileOpenDialog,我可以设置文件夹选项,但在选择不存在的文件夹时会提示用户输入错误(尽管我的设置标记表明不这样做).

是否有另一种方法可以让新手IFileDialog充当"保存文件夹"对话框?

[为了取消一些评论,SHBrowseForFolder API仍然存在,但对于我们的UI决策者来说仍然不是一个可接受的解决方案.]

winapi folderbrowserdialog windows-7

6
推荐指数
1
解决办法
1804
查看次数

WinForms:为什么在显示文件夹浏览器对话框时会出现InvalidCastException?

我在显示FolderBrowserDialog时随机获取InvalidCastException,并且许多客户端都报告了此情况.

我无法在互联网上找到任何相关内容.有谁知道是什么导致这个/如何解决这个问题?

我的代码:

        using (FolderBrowserDialog fbd = new FolderBrowserDialog())
        {
            fbd.ShowNewFolderButton = false;
            if (fbd.ShowDialog() == DialogResult.OK)
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

Error: System.InvalidCastException: 
'Unable to cast object of type 'System.__ComObject' to type 'IMalloc'.'.

    Stack trace:    
at System.Windows.Forms.UnsafeNativeMethods.Shell32.SHGetMalloc(IMalloc[] ppMalloc)
at System.Windows.Forms.FolderBrowserDialog.GetSHMalloc()
at System.Windows.Forms.FolderBrowserDialog.RunDialog(IntPtr hWndOwner)
at System.Windows.Forms.CommonDialog.ShowDialog(IWin32Window owner)
at System.Windows.Forms.CommonDialog.ShowDialog()
Run Code Online (Sandbox Code Playgroud)

编辑:附加信息:我只能在VS2008调试器中运行时才能重现这一点.

当用完调试器时,它在我的64位Windows 7上很少发生(在6个月内发生过一次或两次),并在重启后消失.

客户端肯定没有在调试器中运行应用程序,所以它肯定可以从调试器中重现.

c# folderbrowserdialog .net-2.0 winforms

6
推荐指数
1
解决办法
1615
查看次数

如何使用MVVM的WPF应用程序中的FolderBrowserDialog

我正在尝试使用FolderBrowserDialog我的WPF应用程序 - 没什么特别的.我不太关心它有Windows窗体的外观.

我找到了一个问题,其中包含一个合适的答案(如何使用WPF应用程序中的FolderBrowserDialog),除了我正在使用MVVM.

是我"实现"的答案,除了我无法获取窗口对象,我只是在ShowDialog()没有任何参数的情况下调用.

问题是这样的:

var dlg = new FolderBrowserDialog();
System.Windows.Forms.DialogResult result = dlg.ShowDialog(this.GetIWin32Window());
Run Code Online (Sandbox Code Playgroud)

在我的ViewModel那里,this没有GetIWin32Window()方法让我获得Window上下文.

关于如何使这项工作的任何想法?

.net c# wpf folderbrowserdialog mvvm

5
推荐指数
1
解决办法
1万
查看次数

在 FolderBrowserDialog 中显示文本框

我如何在 FolderBrowserDialog 中显示文本框,如下图所示, 在此处输入图片说明

vb.net folderbrowserdialog

5
推荐指数
1
解决办法
6081
查看次数

C#从目录读取文件夹(名称)

我有以下代码:

        string directory;
        FolderBrowserDialog fbd = new FolderBrowserDialog();
        if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            directory = fbd.SelectedPath;

            txtSource.Text = directory;

            DirectoryInfo d = new DirectoryInfo(directory);
            FileInfo[] Files = d.GetFiles();

            List<String> str = new List<string>();
            foreach (FileInfo file in Files)
            {
                str.Add(file.Name);
            }
        }
Run Code Online (Sandbox Code Playgroud)

我在FolderBrowseDialog其中选择文件夹的路径。在此选定的文件夹中还有3个其他文件夹。我想读出这些文件夹的名称。我不想知道或读出文件名。

.net c# folderbrowserdialog

5
推荐指数
2
解决办法
7884
查看次数

如何使用 React 选择目录?

我需要将文件夹中的所有文件上传到服务器。我正在尝试实现选择目录窗口,而不是选择文件。

正常方式如:

<input type="file" webkitdirectory directory/>
Run Code Online (Sandbox Code Playgroud)

对我不起作用,并显示“选择文件”窗口。

但是当我用这个输入标签创建空的常规 html 文件时,它工作正常。有人知道如何使用 React 实现解决方案吗?

谢谢!

html folderbrowserdialog reactjs

5
推荐指数
1
解决办法
7107
查看次数

wpf c#中的FolderBrowserDialog

我正在使用System.Windows;,System.Windows.Controls;所以我不能使用,System.Windows.Forms;因为有很多控件,如消息框和列表框...等他们之间是常见的另一种解决方案获取folderbrowserdialog没有使用System.Windows.Forms;或是否有任何获取文件夹位置对话框?

c# wpf folderbrowserdialog

4
推荐指数
2
解决办法
2万
查看次数

无法设置指定的COM单元状态

看来我对多线程应用程序真的不太好.我试图打开一个FolderBrowserDialog,但我得到一个例外告诉我:

Current thread must be set to single thread apartment (STA) mode before OLE calls can be made.

我已经STAThreadAttribute在我的Main方法中设置了,但是从我的主线程以外的线程调用FolderBrowserDialog.我试过了

Thread.CurrentThread.SetApartmentState(ApartmentState.STA);
Run Code Online (Sandbox Code Playgroud)

但这给了例外Failed to set the specified COM apartment state.

我有一个临时修复,在STA模式下创建一个新线程并打开FolderBrowserDialog,但我想有一个更整洁的解决方案.是什么原因导致无法将公寓状态设置为STA?

c# multithreading folderbrowserdialog

4
推荐指数
1
解决办法
7683
查看次数

如何重绘或刷新屏幕

我正在开发一个 wpf 应用程序。在这里,我需要在我的 Wpf 应用程序中使用 System.Windows.Forms.FolderBrowserDialog。

        System.Windows.Forms.FolderBrowserDialog openFolderBrowser = new System.Windows.Forms.FolderBrowserDialog();

        openFolderBrowser.Description = "Select Resource Path:";
        openFolderBrowser.RootFolder = Environment.SpecialFolder.MyComputer;
        if (openFolderBrowser.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            //some logic
            openFolderBrowser.Dispose();
        }
Run Code Online (Sandbox Code Playgroud)

我启动一个FolderBrowserDialog,选择一个文件夹并点击OK,然后我启动另一个System.Windows.Forms.FolderBrowserDialog,我的问题是当我在这个FolderBrowserDialog中选择一个文件夹并点击OK时,FolderBrowserDialog的阴影仍然留在屏幕上(意味着我的屏幕没有刷新)。我需要最小化或调整它的大小以删除 FolderBrowserDialog 的阴影。我该如何解决这个问题?有什么帮助吗?

编辑:

我找到了解决方案。我在 wpf 窗口上调用了 OnRender 方法,它对我有用。它重新绘制屏幕上的所有内容。

c# wpf refresh folderbrowserdialog

3
推荐指数
1
解决办法
1万
查看次数

如何删除make new folder FolderBrowserDialog

嗨我在visual studio 2013中使用了FolderBrowserDialog和wpf,但是我想删除按钮make new folder,因为在我的应用程序中没有意义,我看到这篇文章http://www.codeproject.com/Articles/14454/Extended-Folder-浏览器禁用此按钮,但我会删除此按钮

c# directory folderbrowserdialog

3
推荐指数
1
解决办法
1960
查看次数