• SaveFileDialog 和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这个类,下面是关于这个类的一些用法!

    OpenFileDialog类是用来选择文件位置的,

    FolderBrowserDialog 类用来选择文件夹位置.

    具体代码如下:

    程序源码:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;

    namespace copyFile
    {
        public partial class Form1 : Form
        {
            String fileName;
            String folderName;
            String extendedName;
            String fileName1;
           
            public Form1()
            {
                InitializeComponent();
            }

            private void browse_Click(object sender,EventArgs e)
            {
                OpenFileDialog ofd = new OpenFileDialog();                //new一个方法
                ofd.InitialDirectory = Environment. GetFolderPath_r(Environment.SpecialFolder.MyDocuments); //定义打开的默认文件夹位置
                ofd.ShowDialog();          //显示打开文件的窗口
                 fileName = ofd.FileName;                //获得选择的文件路径
                 textBox1.Text = fileName;
                 extendedName = Path. GetExtension_r(fileName);       //获得文件扩展名
                 fileName1 = Path. GetFileName_r(fileName);           //获得文件名
            }

            private void folder_Click(object sender, EventArgs e)
            {
                FolderBrowserDialog fbd = new FolderBrowserDialog();
                fbd.ShowDialog();
                folderName = fbd.SelectedPath;                     //获得选择的文件夹路径
                textBox3.Text = folderName;
            }

            private void ok_Click(object sender, EventArgs e)
            {
                 if (textBox1.Text.Trim().Length == 0)
                {
                    MessageBox.Show("文件路径不能为空!");
                    return;
                }
                if (textBox2.Text.Trim().Length == 0)
                {
                    MessageBox.Show("复制数量不能为空!");
                    return;
                }
                if (textBox3.Text.Trim().Length == 0)
                {
                    MessageBox.Show("目标文件夹路径不能为空!");
                    return;
                }
                String newFile;                   //定义存储的位置,和存储的名称
               
                for (int i = 1; i <= Convert.ToInt32(textBox2.Text); i++)                   //从textBox2中获取要复制的次数
                {
                    newFile = folderName + "\" + fileName1 +"_"+ i.ToString() + extendedName;

    ;       File.Copy(fileName, newFile, true);            //使用Copy复制文件, Copy(源文件位置,目标文件夹位置,是否可以覆盖同名文件)
                }
                MessageBox.Show("复制完成!");
            }
        }
    }

    补充:

    //获取文件名
    Path. GetFileName_r(OpenFileDialog.FileName)

    //获取文件路径
    Path. GetDirectoryName_r(OpenFileDialog.FileName)

    //获取文件扩展名
    Path. GetExtension_r(OpenFileDialog.FileName)

    SaveFileDialog 

    #region 保存对话框
    private void ShowSaveFileDialog()
    {
    //string localFilePath, fileNameExt, newFileName, FilePath; 
    SaveFileDialog sfd = new SaveFileDialog();

    //设置文件类型 
    sfd.Filter = "数据库备份文件(*.bak)|*.bak|数据文件(*.mdf)|*.mdf|日志文件(*.ldf)|*.ldf";

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

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

    //点了保存按钮进入 
    if (sfd.ShowDialog() == DialogResult.OK)
    {
    string localFilePath = sfd.FileName.ToString(); //获得文件路径 
    string 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)sfd.OpenFile();//输出文件

    ////fs输出带文字或图片的文件,就看需求了 
    }
    }

    #endregion

  • 相关阅读:
    算法题(2):两个数组的交集
    git 的一些小 tips
    linux 命令 -- chmod
    linux 命令 -- alias 和 grep
    docker 学习笔记(2)
    docker 学习笔记(1)
    redis 学习笔记(2)
    redis 学习笔记(1)
    对对象的list集合以excel表格导出
    字符串处理
  • 原文地址:https://www.cnblogs.com/rockman/p/3318910.html
Copyright © 2020-2023  润新知