0

我使用Ookii.Dialog

当我使用 VistaFolderBrowserDialog 选择一个文件夹时,我希望如果所选文件夹不存在,它会要求创建它而不是警告该文件夹不存在。

我怎么能做这样的事情?有什么活动或选择吗?

这是我的代码。

VistaFolderBrowserDialog dialog = new VistaFolderBrowserDialog();
dialog.Description = "Select Export Folder:";
dialog.ShowNewFolderButton = true;
dialog.SelectedPath = Path.Combine(Path.GetDirectoryName(lastSelectPath), 
       Path.GetFileNameWithoutExtension(lastAppendFilepath));
4

1 回答 1

0

您需要做的就是检查目录是否存在Directory.Exists(string),通过 a 询问用户MessageBox,然后使用Directory.CreateDirectory(string).

var initialDirectory = Path.Combine(Path.GetDirectoryName(lastSelectPath), 
       Path.GetFileNameWithoutExtension(lastAppendFilepath));

if(!Directory.Exists(initalDirectory))
{
    if(MessageBox.Show("Folder does not exist", "The default folder does not exist, create it?", MessageBoxButtons.YesNo) == DialogResult.Yes)
        Directory.CreateDirectory(initalDirectory);
}

VistaFolderBrowserDialog dialog = new VistaFolderBrowserDialog();
dialog.Description = "Select Export Folder:";
dialog.ShowNewFolderButton = true;
dialog.SelectedPath = initalDirectory;

请注意,有Directory.CreateDirectory(initalDirectory)可能引发异常的原因。例如,您尝试创建一个您无权创建目录的目录。您可能希望将这两行包装在一个 try-catch 块中并适当地处理任何错误。

于 2013-09-17T18:08:08.773 回答