我正在使用FolderBrowserDialog
让用户选择保存文件的位置,和/或创建新文件夹。它有99%的时间在工作,但是在某些情况下,当用户单击“创建新文件夹”按钮时,更改名称,然后单击“确定”将会抛出一个异常"新文件夹"不存在。
似乎代码仍然在寻找一个名为" New Folder"的文件夹。即使用户重命名它。我可以在代码中更改哪些内容来处理此问题,以便文件始终保存在用户选择的文件夹中?
//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));
答案 0 :(得分:2)
它不太可能是您代码中的错误;用户在FBD中创建一个新文件夹,FBD将路径捕获为...\new folder
,用户再次点击它(重命名),重命名它,然后再不再点击它(或点击它然后再点击它对于FBD实现名称已经改变。不是你的错/问题; PEBKAC/PICNIC。使用FBD的每个Windows软件都受此影响。
作为一方,FBD是一个可怕的事情,避免使用它(你不能总是快速粘贴一条路径去那里..你必须费力地通过鼠标找到你的方式通过许多目录。它得到当FBD选择的初始目录被重置为某个默认/不接近用户上次选择的内容时更加恼人等等。
改为使用OpenFileDialog并同时提示用户输入要保存的文件名,或者查看像How do you configure an OpenFileDialog to select folders?这样的SO问题,看看人们为解决FBD的局限而做了什么