c# - 保存文件之前从 SaveFileDialog 获取文件夹路径

标签 c#

我在我的应用程序中使用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/

相关文章:

c# - 从 C# 代码插入 SQL 数据库时出现重复键

c# - 只有赋值调用自增自减await和new对象表达式才能作为语句

c# - 对网站进行负载测试

c# - 使用 FakeItEasy 创建类并自动初始化依赖项

c# - 在通用词典中找不到键

c# - 不能在数据绑定(bind) datagridview 控件上设置列计数属性 c#

c# - 返回自定义类的 WCF 服务在 Reference.cs 中生成错误

c# - 使用 Entity Framework 动态选择要将数据插入到哪个表

c# - 从 C# 代码构建跨平台共享库

c# - 为什么我的 CreateRibbonExtensibilityObject 方法没有被调用?