C# 对话框类(OpenFileDialog,SaveFileDialog,FolderBrowserDialog)

本文详细介绍了C#中如何使用OpenFileDialog、SaveFileDialog和FolderBrowserDialog类进行文件和文件夹操作。OpenFileDialog的属性如InitialDirectory、Filter等用于定制对话框行为;SaveFileDialog则用于保存文件,可设定文件类型、默认文件名和扩展名;FolderBrowserDialog用于选择文件夹,可以记住上次选择的目录。文章通过实例代码展示了如何在实际应用中使用这些对话框。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OpenFileDialog类
一、打开文件对话框(OpenFileDialog)
  1、 OpenFileDialog控件有以下基本属性
InitialDirectory 对话框的初始目录
Filter 要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*"
FilterIndex 在对话框中选择的文件筛选器的索引,如果选第一项就设为1
RestoreDirectory 控制对话框在关闭之前是否恢复当前目录
FileName 第一个在对话框中显示的文件或最后一个选取的文件
Title 将显示在对话框标题栏中的字符
AddExtension 是否自动添加默认扩展名
CheckPathExists
在对话框返回之前,检查指定路径是否存在
DefaultExt 默认扩展名
DereferenceLinks 在从对话框返回前是否取消引用快捷方式
ShowHelp
启用"帮助"按钮
ValiDateNames 控制对话框检查文件名中是否不含有无效的字符或序列
  2、 OpenFileDialog控件有以下常用事件

FileOk 当用户点击"打开"或"保存"按钮时要处理的事件
HelpRequest 当用户点击"帮助"按钮时要处理的事件
  
  可以用以下代码来实现上面这个对话框:
private void openFileDialogBTN_Click(object sender, System.EventArgs e){
OpenFileDialog openFileDialog=new OpenFileDialog();
openFileDialog.InitialDirectory="c:\\";//注意这里写路径时要用c:\\而不是c:\
openFileDialog.Filter="文本文件|*.*|C#文件|*.cs|所有文件|*.*";
openFileDialog.RestoreDirectory=true;
openFileDialog.FilterIndex=1;
if (openFileDialog.ShowDialog()==DialogResult.OK)
{
fName=openFileDialog.FileName;
File fileOpen=new File(fName);
isFileHaveName=true;
richTextBox1.Text=fileOpen.ReadFile();
richTextBox1.AppendText("");
}
}
  /*路径的返回用filename是字符串类型
如:openFileDialog1.ShowDialog();
            _name1= openFileDialog1.FileName;
            Image imge = Image.FromFile(_name1);*/
/********/
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "请选择音乐文件";
ofd.InitialDirectory = @"C:\Users\SpringRain\Desktop\Music";
 ofd.Multiselect = true;
ofd.Filter = "音乐文件|*.wav|所有文件|*.*";
ofd.ShowDialog();
SaveFileDialog
//SaveFileDialog类(保存文件对话框)

c#获取要保存文件的对话框,用SaveFileDialog类。具体用法很简单分享一下吧,对于初学者可能有用
//可能要获取的路径名
string localFilePath = "", fileNameExt= "", newFileName= "", FilePath = "";
SaveFileDialog saveFileDialog = new SaveFileDialog();

//设置文件类型
//书写规则例如:txt files(*.txt)|*.txt
saveFileDialog.Filter = "txt files(*.txt)|*.txt|xls files(*.xls)|*.xls|All files(*.*)|*.*";
//设置默认文件名(可以不设置)
saveFileDialog.FileName = "siling-Data";
//主设置默认文件extension(可以不设置)
saveFileDialog.DefaultExt = "xml";
//获取或设置一个值,该值指示如果用户省略扩展名,文件对话框是否自动在文件名中添加扩展名。(可以不设置)
saveFileDialog.AddExtension = true;
//设置默认文件类型显示顺序(可以不设置)
saveFileDialog.FilterIndex = 2;
//保存对话框是否记忆上次打开的目录
saveFileDialog.RestoreDirectory = true;
// Show save file dialog box
DialogResult result = saveFileDialog.ShowDialog();
//点了保存按钮进入
if (result == DialogResult.OK)
{
  //获得文件路径
  localFilePath = saveFileDialog.FileName.ToString();
  //获取文件名,不带路径
  //fileNameExt = localFilePath.Substring(localFilePath.LastIndexOf("\\") + 1);
  //获取文件路径,不带文件名
  //FilePath = localFilePath.Substring(0, localFilePath.LastIndexOf("\\"));
  //给文件名前加上时间
  //newFileName = DateTime.Now.ToString("yyyyMMdd") + fileNameExt;
  //在文件名里加字符
  //saveFileDialog.FileName.Insert(1,"dameng");
  //为用户使用 SaveFileDialog 选定的文件名创建读/写文件流。
  //System.IO.FileStream fs = (System.IO.FileStream)saveFileDialog.OpenFile();//输出文件
  //fs可以用于其他要写入的操作
} 
//FolderBrowserDialog类(浏览器文件夹对话框) 
 //将一个文件夹里面的东西复制到另一个文件夹里面去
 private void button1_Click(object sender, EventArgs e)
        {
            string sDir, dDir;
            FolderBrowserDialog sourceFolder = new FolderBrowserDialog();
            sourceFolder.Description = "请选择要复制的文件夹";
            if (sourceFolder.ShowDialog() == DialogResult.OK)
            {
                sDir = sourceFolder.SelectedPath;//将要复制的文件夹的路径
                sourceFolder.Description = "请选择要复制到的文件夹";
                if (sourceFolder.ShowDialog() == DialogResult.OK)
                {
                    dDir = sourceFolder.SelectedPath;//要复制到的文件路径
                    string[] files = Directory.GetFiles(sDir);
                    foreach (var file in files)
                    {
                        string dFileName = file.Substring(file.LastIndexOf("\\") + 1);
                        File.Copy(file, dDir + "\\" + dFileName, true);
                    }
                }
            }
        }
FolderBrowserDialog
//FolderBrowserDialog实现默认选中上次选择的目录 
public partial class Form1 : Form  
    {  
        string defaultfilePath = "";  
  
        private void button1_Click(object sender, EventArgs e)  
        {  
            FolderBrowserDialog dialog = new FolderBrowserDialog();  
            //首次defaultfilePath为空,按FolderBrowserDialog默认设置(即桌面)选择  
            if (defaultfilePath != "")  
            {  
                //设置此次默认目录为上一次选中目录  
                dialog.SelectedPath = defaultfilePath;  
            }  
  
            if (dialog.ShowDialog() == DialogResult.OK)  
            {  
                //记录选中的目录  
                defaultfilePath = dialog.SelectedPath;  
            }  
       }  
}   
线程调用SaveFileDialog失效


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值