1、选择文件用OpenDialog

OpenFileDialog dialog = new OpenFileDialog();
dialog.Multiselect = true;//该值确定是否可以选择多个文件
dialog.Title = "请选择文件夹";
dialog.Filter = "所有文件(*.*)|*.*";
if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string file = dialog.FileName;
}
Filter 属性 赋值为一字符串 用于过滤文件类型;
字符串说明如下:
‘|’分割的两个,一个是注释,一个是真的Filter,显示出来的是那个注释。如果要一次显示多中类型的文件,用分号分开。
如:
Open1.Filter="图片文件(*.jpg,*.gif,*.bmp)|*.jpg;*.gif;*.bmp";
则过滤的文件类型为 “|”号 右边的 *.jpg;*.gif;*.bmp 三种类型文件,在OpenDialog/SaveDialog中显示给用户看的文件类型字符串则是 :“|”号 左边的 图片文件(*.jpg,*.gif,*.bmp)。
再如:
Open1.Filter="图像文件(*.jpg;*.jpg;*.jpeg;*.gif;*.png)|*.jpg;*.jpeg;*.gif;*.png";

2、使用System.Windows.Forms.FolderBrowserDialog选择文件夹

System.Windows.Forms.FolderBrowserDialog dialog =new System.Windows.Forms.FolderBrowserDialog();
dialog.Description = "请选择Txt所在文件夹";
if (dialog.ShowDialog()==System.Windows.Forms.DialogResult.OK )
{
if (string.IsNullOrEmpty(dialog.SelectedPath))
{
System.Windows.MessageBox.Show(this, "文件夹路径不能为空", "提示");
return;
}
this.LoadingText = "处理中...";
this.LoadingDisplay = true;
Action<string> a = DaoRuData;
a.BeginInvoke(dialog.SelectedPath,asyncCallback, a);
}

3、直接打开某路径下的文件或者文件夹

 System.Diagnostics.Process.Start("ExpLore", "C:\\window");

<C#>_在窗体中打开文件

实现的代码如下:

public void openfile(int n)
{
OpenFileDialog openfile = new OpenFileDialog(); openfile.Filter = "*.cs | *.cs";//设置文件后缀
if (openfile.ShowDialog() == DialogResult.OK)
{
string filename = openfile.FileName;
dic1.Add(n, filename);
fileArr[n].Text = filename.Substring(filename.LastIndexOf("\\") + , filename.LastIndexOf(".") - (filename.LastIndexOf("\\") + ));
}
} 页面中的【NO】按钮是用来打开文件的,打开的文件是readonly权限,是不可编写的,点击【编辑】按钮就可以打开文件并且编辑,实现代码如下: public void readfile(int btNumber, string mode)//点击【NO】按钮,以只读发方式打开文件
{
int key = Convert.ToInt16(numArr[btNumber].Text) - ;
foreach (KeyValuePair<int, string> kv in dic1)
{
if (kv.Key == key)
{
System.IO.FileInfo f = new System.IO.FileInfo(kv.Value);
if (mode == "ReadOnly")
{
f.Attributes = System.IO.FileAttributes.ReadOnly;
}
System.Diagnostics.Process csProcess = System.Diagnostics.Process.Start(kv.Value);
}
}
} public void readfile(int btNumber)//点击【编辑】按钮,以可读可写发方式打开文件
{
int key = Convert.ToInt16(numArr[btNumber].Text) - ;
foreach (KeyValuePair<int, string> kv in dic1)
{
if (kv.Key == key)
{
System.IO.FileInfo f = new System.IO.FileInfo(kv.Value);
f.Attributes = System.IO.FileAttributes.Normal;
System.Diagnostics.Process csProcess = System.Diagnostics.Process.Start(kv.Value);
}
}
} 在C#窗体中使用代码实现文件的打开,用的是进程的思想,即Windows中每个软件都是一个进程,我们平时在电脑中自己打开一个txt文件就是打开一个进程,在代码中同样可以实现打开文件的功能。 关键语句就是: System.Diagnostics.Process csProcess = System.Diagnostics.Process.Start(kv.Value); 这里的kv.Value是用键值对把文件名和【NO】中的序号对应起来,方便做一些读写操作。 在没有设置文件的权限时,文件是不可改变的,所以以上代码中,如果不实现 f.Attributes = System.IO.FileAttributes.ReadOnly; 文件打开后也是不能更改的,大家可以试试。 为了使文件能够修改,要设置成 f.Attributes = System.IO.FileAttributes.Normal; 设置文件的属性主要用到了FileInfo类的Attributes属性。

C# 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=;
if (openFileDialog.ShowDialog()==DialogResult.OK)
{
fName=openFileDialog.FileName;
File fileOpen=new File(fName);
isFileHaveName=true;
richTextBox1.Text=fileOpen.ReadFile();
richTextBox1.AppendText("");
}
}

3、 获取对话框的文件名

openfiledialog.FileName //获取或设置一个包含在文件对话框中选定的文件名字符串

openfiledialog.SafeFileName  //获取选定对话框中的文件名和扩展名

二、打开文件夹对话框(FolderBrowserDialog)

FolderBrowserDialog dialog = new FolderBrowserDialog();
dialog.Description = "请选择文件路径"; if (dialog.ShowDialog() == DialogResult.OK)
{
savePath = dialog.SelectedPath;
textBox2.Text = savePath;
}

C#选择文件、选择文件夹、打开文件的更多相关文章

  1. matlab中fopen 打开文件或获得有关打开文件的信息

    参考:https://ww2.mathworks.cn/help/matlab/ref/fopen.html?searchHighlight=fopen&s_tid=doc_srchtitle ...

  2. Linux中的文件描述符与打开文件之间的关系

    Linux中的文件描述符与打开文件之间的关系 导读 内核(kernel)利用文件描述符(file descriptor)来访问文件.文件描述符是非负整数.打开现存文件或新建文件时,内核会返回一个文件描 ...

  3. QT 获取文件的路径、打开文件的弹出对话框

    1.打开获取文件夹路径的对话框 QString filePath = QFileDialog::getExistingDirectory(this, "请选择文件保存路径...", ...

  4. c#基础学习(0628)之使用进程打开指定的文件、模拟磁盘打开文件

    使用进程打开指定的文件 模拟磁盘打开文件 class Program { static void Main(string[] args) { while(true) { Console.WriteLi ...

  5. 文件I/O之-打开文件在内核中的表示

    在unix系统中,一切皆文件.系统把文件夹.字符设备.块设备.套接字都当做文件来对待.对于文件的操作,使用I/O函数,这里所说的I/O函数是指系统调用.大多数文件的I/O要用到这5个函数:open.r ...

  6. Linux文件描述符与打开文件之间的区别(转载)

    转载请说明出处:http://blog.csdn.net/cywosp/article/details/38965239   1. 概述     在Linux系统中一切皆可以看成是文件,文件又可分为: ...

  7. Linux中的文件描述符与打开文件之间的关系------------每天进步一点点系列

    http://blog.csdn.net/cywosp/article/details/38965239 1. 概述     在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件.目录文件. ...

  8. Unix系统编程()文件描述符和打开文件之间的关系

    目前学习到的是一个文件描述符对应着一个打开的文件,似乎是对应的关系.但是实际上并不是这样的.多个文件描述符指向同一个打开的文件,是可能的也是必要的.这些文件描述符可以在相同或者不同的进程中打开. 要理 ...

  9. (转)Linux中的文件描述符与打开文件之间的关系

    转:http://blog.csdn.net/cywosp/article/details/38965239 1. 概述     在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件.目录文 ...

  10. xmind 8 便携版:关联文件后,双击打开文件,在当前文件夹产生configuration子文件的问题解决办法

    Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.xmind] @="XMind.Workbook.3" " ...

随机推荐

  1. AI-restful接口写法

    AI-restful接口写法 restful接口规范 http协议请求方式:GET POST DELETE PUT PATCH OPTION HEAD 设计接口时必须使用这种格式的数据 GET 查看数 ...

  2. String 类的实现(1)浅拷贝存在的问题以及深拷贝实现

    1.   浅拷贝 : 也称位拷贝 , 编译器只是直接将指针的值拷贝过来, 结果多个对象共用 同 一块内存, 当一个对象将这块内 存释放掉之后, 另 一些对象不知道该块空间已经还给了系统, 以为还有效, ...

  3. 如果IDEA右上角的tomcat消失了,解决办法

    看了很多博客都没有找到解决办法,还是老师帮我解决的

  4. 有一个字典对象,d = {'a':1,'b':2},请用尽量简洁的代码将d转换成{1: 'a', 2: 'b'}

    题目:有一个字典对象,d = {'a':1,'b':2},请用尽量简洁的代码将d转换成{1: 'a', 2: 'b'} 第一种方法: d = {'a': 1, 'b': 2}d = {value: k ...

  5. CC攻击原理及防范方法和如何防范CC攻击

    一. CC攻击的原理: CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃.CC主要是用来消耗服务器资源的,每个人都有这样的体验:当一个网页访问的人数 ...

  6. Android Studio编译OsmAnd出现警告:GeoPointParserUtil.java使用或覆盖了已过时的 API。有关详细信息请使用-Xlint:deprecation重新编译

    [背景] 之前折腾: [记录]Android Studio中导入OsmAnd并编译 期间,遇到了编译警告: 1 2 3 4 5 :OsmAnd-java:compileJava 注: E:\crifa ...

  7. Linux下Nginx安装/启动/重启/停止

    Nginx是高性能的web服务器也是非常好用反向代理服务器,可以实现负载均衡,动静分离等策略,在linux下用的非常多.下面是下载地址   http://nginx.org/en/download.h ...

  8. hadoop集群运行jps命令以后Datanode节点未启动的解决办法

    出现该问题的原因:在第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式化命令(hdfs namenode -format),这时namenode的clusterID会重新生成,而da ...

  9. Processing3 1.随机行走

    class Walker { int x; int y; Walker() { x = width/2; y = height/2; } void display() { stroke(0); poi ...

  10. jenkins X实践系列(4) —— jenkins X 构建提速

    jx是云原生CICD,devops的一个最佳实践之一,目前在快速的发展成熟中.最近调研了JX,这里为第4篇,介绍如何加入jx构建和部署. builder镜像下载慢 先在一台机器上下载好,然后放到本地仓 ...