我在我的应用程序中使用SaveFileDialog
。有没有办法在实际保存文件之前获取用户选择的文件夹路径?我知道我可以在保存文件后获取文件夹路径,但我需要在保存文件之前获取文件夹路径。我需要使用文件夹名称来设置文件名,例如如果用户选择名为“ABC”的文件夹,则“文件名”文本框中的文件名将设置为“ABC10001”,下一个文件将为“ABC10002”等。
我知道我可以使用FolderBrowserDialog,但我不太喜欢它的用户界面。我还想为用户提供一个选项来覆盖文件名,而这对于FolderBrowserDialog 来说是不可能的。
private void Button_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.InitialDirectory = @"C:\";
saveFileDialog.Title = "Save text Files";
saveFileDialog.CheckFileExists = true;
saveFileDialog.CheckPathExists = true;
saveFileDialog.DefaultExt = "txt";
saveFileDialog.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
saveFileDialog.FilterIndex = 2;
saveFileDialog.RestoreDirectory = true;
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
string folderPath = Path.GetDirectoryName(saveFileDialog.FileName);
}
}
如有任何帮助,我们将不胜感激。
提前致谢。
最佳答案
SaveFileDialog
仅支持选择文件,不支持选择文件夹。但是,在通过调用 SaveFileDialog.ShowDialog()
获取 DialogResult
后,您可以使用 Path.GetDirectoryName()
在 SaveFileDialog.FileName
上检索文件夹名称。
或者,您可以使用 WindowsAPICodePack 中的 CommonOpenFileDialog
包以允许用户选择文件夹。
关于c# - 保存文件之前从 SaveFileDialog 获取文件夹路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61261854/