1

我正在使用FolderBrowserDialog让用户选择一个位置来保存文件和/或创建一个新文件夹。它在 99% 的时间都在工作,但是在某些情况下,当用户单击“创建新文件夹”按钮,更改名称,然后单击“确定”时,将抛出“新文件夹”不存在的异常。

即使用户将其重命名,代码似乎仍在寻找名称为“新文件夹”的文件夹。我可以在代码中进行哪些更改来处理此问题,以便文件始终保存在用户选择的文件夹中?

//Declaring Filename
FolderBrowserDialog folderDlg = new FolderBrowserDialog();
folderDlg.ShowNewFolderButton = true;
folderDlg.Description = "Choose the location to save Files";
DialogResult result = folderDlg.ShowDialog();
if (result == DialogResult.OK)
{
    savelocation = folderDlg.SelectedPath;
}

// Choose whether to write header. Use EnableWithoutHeaderText instead to omit header.
dataGridExport.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText;
// Select all the cells
dataGridExport.SelectAll();
// Copy selected cells to DataObject
DataObject dataObject = dataGridExport.GetClipboardContent();
// Get the text of the DataObject, and serialize it to a file
File.WriteAllText(savelocation + "\\ExcelExport.csv", dataObject.GetText(TextDataFormat.CommaSeparatedValue));
4

1 回答 1

2

它不太可能是您的代码中的错误;用户在 FBD 中创建一个新文件夹,FBD 捕获路径为...\new folder,用户再次单击它(重命名它),重命名它,然后不再单击它(或单击它并重新打开),以便 FBD 实现名称已更改。不是你的错/问题;PEBKAC/野餐。每个使用 FBD 的 Windows 软件都会遇到这种情况。

另一方面,FBD 是一个可怕的东西,避免使用它(你不能总是快速粘贴路径到那里。你必须费力地使用鼠标在许多目录中找到你的方式。当FBD 选择的初始目录被重置为某个默认值/不接近用户上次选择的目录等)

改用 OpenFileDialog 并同时提示用户输入要保存的文件名,或者查看一个 SO 问题,例如如何配置 OpenFileDialog 来选择文件夹?看看人们做了什么来绕过 FBD 的限制

于 2017-12-19T16:37:06.240 回答