您现在的位置: 365建站网 > 365学习 > c#中的SaveFileDialog保存对话框的用法

c#中的SaveFileDialog保存对话框的用法

文章来源:365jz.com     点击数:4202    更新时间:2018-06-05 19:55   参与评论

如何使用 SaveFileDialog 组件保存文件


QQ截图20180605195616.jpg

SaveFileDialog组件,用户可以浏览文件系统并选择要保存文件。 对话框返回用户在对话框中所选的文件路径和名称。 但是必须编写代码才能真正地将文件写入磁盘。

使用 SaveFileDialog 组件保存文件

显示“保存文件”对话框,并调用来方法保存用户选择的文件。

使用SaveFileDialog组件的OpenFile方法以将保存该文件。 此方法提供Stream可以写入的对象。

下面的示例使用DialogResult属性来获取该文件的名称和OpenFile方法以将保存该文件。 OpenFile方法提供写入到文件流。

在下面的示例中,没有Button控件分配给它的映像。 当你单击按钮,SaveFileDialog与允许的类型.gif、.jpeg 和.bmp 文件的筛选器实例化组件。 如果在“保存文件”对话框中选择了此类型的文件,那么按钮的图像将会保存。

重要

要获取或设置FileName属性,您的程序集需要特权级别授予通过System.Security.Permissions.FileIOPermission类。 如果在部分信任上下文中运行,该进程可能会因特权不足而引发异常。 有关详细信息,请参阅代码访问安全性基础知识。

该示例假定你的窗体具有Button使用来控制其Image属性设置为的类型.gif、.jpeg 或.bmp 文件。

备注

FileDialog类的FilterIndex属性 (它,由于继承,属于SaveFileDialog类) 使用基于 1 的索引。 如果要通过编写代码以特定格式保存数据(例如,以纯文本或二进制格式保存文件),那么这一点很重要。以下示例介绍了该属性。

private void button2_Click(object sender, System.EventArgs e)  
{  
   // Displays a SaveFileDialog so the user can save the Image  
   // assigned to Button2.  
   SaveFileDialog saveFileDialog1 = new SaveFileDialog();  
   saveFileDialog1.Filter = "JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif";  
   saveFileDialog1.Title = "Save an Image File";  
   saveFileDialog1.ShowDialog();  
   // If the file name is not an empty string open it for saving.  
   if(saveFileDialog1.FileName != "")  
   {  
      // Saves the Image via a FileStream created by the OpenFile method.  
      System.IO.FileStream fs =   
         (System.IO.FileStream)saveFileDialog1.OpenFile();  
      // Saves the Image in the appropriate ImageFormat based upon the  
      // File type selected in the dialog box.  
      // NOTE that the FilterIndex property is one-based.  
      switch(saveFileDialog1.FilterIndex)  
      {  
         case 1 :   
         this.button2.Image.Save(fs,   
            System.Drawing.Imaging.ImageFormat.Jpeg);  
         break;  
         case 2 :   
         this.button2.Image.Save(fs,   
            System.Drawing.Imaging.ImageFormat.Bmp);  
         break;  
         case 3 :   
         this.button2.Image.Save(fs,   
            System.Drawing.Imaging.ImageFormat.Gif);  
         break;  
      }  
   fs.Close();  
   }  
}


SaveFileDialog saveFileDialog1 = new SaveFileDialog();

            saveFileDialog1.AddExtension = true;

            saveFileDialog1.Filter = "ACCESS 2003(*.mdb)|*.mdb|所有文件|*.*"; //文件类型

            saveFileDialog1.Title = "数据库另存为";//标题

            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {

                string fileName = saveFileDialog1.FileName;

                string pathFile = "c://ere.txt"; //指定文件

                File.Copy(pathFile, fileName, true); //复制

                MessageBox.Show("备份成功!");

            }

            else
            {

                MessageBox.Show("操作已取消!");

            }

      作用是将制定的文件(c://ere.txt)保存备份为其它的名称的文件

saveFileDialog saveFileDialog1=new saveFileDialog();

saveFileDialog1.InitialDirectory = Path.GetDirectoryName(strPartPath);

  //设置文件类型

saveFileDialog1.Filter = "Excel 工作簿(*.xlsx)|*.xlsx|Excel 启动宏的工作簿(*.xlsm)|*.xlsm|Excel 97-2003工作簿(*.xls)|*.xls";

//saveFileDialog1.FilterIndex = 1;//设置文件类型显示

saveFileDialog1.FileName = "自己取个";//设置默认文件名

saveFileDialog1.RestoreDirectory = true;//保存对话框是否记忆上次打开的目录

saveFileDialog1.CheckPathExists = true;//检查目录

 if (saveFileDialog1.ShowDialog() == DialogResult.OK)

{

 string strSaveFileLocation = saveFileDialog1.FileName;//文件路径

 }       



private void SaveFileDialog()
{
 //string localFilePath, fileNameExt, newFileName, FilePath;
 SaveFileDialog saveFileDialog1 = new SaveFileDialog();



 //设置文件类型
 saveFileDialog1.Filter = " txt files(*.txt)|*.txt|All files(*.*)|*.*";

 //设置默认文件类型显示顺序
 saveFileDialog1.FilterIndex = 2;

 //保存对话框是否记忆上次打开的目录
 saveFileDialog1.RestoreDirectory = true;

 //点了保存按钮进入
 if (saveFileDialog1.ShowDialog() == DialogResult.OK)
 {
  //获得文件路径
  //localFilePath = saveFileDialog1.FileName.ToString();

  //获取文件名,不带路径
  //fileNameExt = localFilePath.Substring(localFilePath.LastIndexOf("\\") + 1);

  //获取文件路径,不带文件名
  //FilePath = localFilePath.Substring(0, localFilePath.LastIndexOf("\\"));
  //给文件名前加上时间
  //newFileName = DateTime.Now.ToString("yyyyMMdd") + fileNameExt;

  //在文件名里加字符
  //saveFileDialog1.FileName.Insert(1,"dameng");
    
  System.IO.FileStream fs = (System.IO.FileStream)saveFileDialog1.OpenFile();//输出文件
 }
}

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛


发表评论 (4202人查看1条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片
最新评论
2019年10月12日 16:381

test this is a  word test

------分隔线----------------------------