zoukankan      html  css  js  c++  java
  • 【.Net】在WinForm中选择本地文件

    相信很多朋友在日常的编程中总会遇到各钟各样的问题,关于在WinForm中选择本地文件就是很多朋友们都认为很难的一个学习.net的难点,

    在WebForm中提供了FileUpload控件来供我们选择本地文件,只要我们将该控件拖到页面上了,就已经有了选择本地文件的功能了。而在 WinForm中,并没有为我们提供集成该功能的控件,但为我们提供了OpenFileDialog类,我们可以利用该类来打开与选择本地文件。

    OpenFileDialog类,提供了提示用户打开文件的功能,它有如下属性和方法:

    属性:
    CheckFileExists--设置对话框在用户指定的文件名不存在时是否显示警告
    Multiselect--设置是否允许用户同时选择多个文件
    ReadOnlyChecked--获取或设置一个值,该值指示是否选定只读复选框
    SafeFileName--获取对话框中所选文件的文件名和扩展名。文件名不包含路径
    SafeFileNames--获取对话框中所有选定文件的文件名和扩展名的数组。文件名不包含路径
    ShowReadOnly--获取或设置一个值,该值指示对话框是否包含只读复选框

    方法:
    OpenFile()--返回用户所选定的只读文件的 System.IO.Stream
    Reset()--将所有属性重新设置为其默认值

    下面我们看一个提供用户选择文件的示例:
    一,拖拉一个Button按钮到WinForm窗体
    二,双击该Button,vs会自动为该按钮添加单击事件并跳转到该事件中,在该事件中添加以下代码:

    private void button10_Click(object sender, EventArgs e)
    {
    //初始化一个OpenFileDialog类
    OpenFileDialog fileDialog = new OpenFileDialog();

    //判断用户是否正确的选择了文件
    if (fileDialog.ShowDialog() == DialogResult.OK)
    {
    //获取用户选择文件的后缀名
    string extension = Path.GetExtension(fileDialog.FileName);
    //声明允许的后缀名
    string[] str = new string[] { ".gif", ".jpge", ".jpg" };
    if (!((IList)str).Contains(extension))
    {
    MessageBox.Show("仅能上传gif,jpge,jpg格式的图片!");
    }
    else
    {
    //获取用户选择的文件,并判断文件大小不能超过20K,fileInfo.Length是以字节为单位的
    FileInfo fileInfo = new FileInfo(fileDialog.FileName);
    if (fileInfo.Length  > 20480)
    {
    MessageBox.Show("上传的图片不能大于20K");
    }
    else
    {
    //在这里就可以写获取到正确文件后的代码了
    }
    }
    }
    }
    如果我们要为弹出的选择框中过滤文件类型,可以设置OpenFileDialog的Filter属性。比如我们只允许用户选择.xls文件,可以作如下设置:

    fileDialog.Filter = "(*.xls)|*.xls";

  • 相关阅读:

    转:在自己的工具条中使用ArcGIS Engine提供的命令和工具
    配置Subversion Apache TortoiseSVN
    vc++2005移除自定义向导目录
    NetAdvantage2006 For ASP.NET2.0印象
    三天了!今天终于成功安装ArcIMS9.2!
    vss 去除源代码管理
    转:设计模式趣谈
    转一篇:有关项目报告
    演练:使用 Visual Studio Team Test 进行单元测试
  • 原文地址:https://www.cnblogs.com/yanglang/p/7151321.html
Copyright © 2011-2022 走看看