Path类与Directory类与File类
2016-07-13 23:49
218 查看
阅读目录
开始Path 对路径 字符串进行操作
获得后缀
能合并路径
获取文件名
Directory和DirectoryInfo 对目录进行操作
判断目录是否存在
创建目录
删除目录
获取目录下所有的子目录
获取目录下所有的子文件
File和FileInfo 对文件进行操作
读文件
写文件
追加文件
判断文件是否存在
创建文件
删除文件
1、Path类
using System; using System.IO;//目录和文件操作的名称空间 namespace _11_Path类 { class Program { static void Main(string[] args) { string path = "c:\\abc\\1.txt" ; //注意这里是对路径字符串的操作 而不是真正的文件 “修改”支持字符串层面的,没有真的给文件改名 path = Path.ChangeExtension(path, "avi" );//ChangeExtension()修改文件后缀名1.avi c:\\abc\\1.avi //将两个路径合成一个路径,比用+好,可以方便解决是不是加斜线的问题,自动处理路径分隔符的问题 path = Path.Combine("c:\\abc\\def\\" , "1.jpg"); //c:\abc\def\1.jpg //得到文件所在文件夹的位置 同样是从字符串的角度去处理 path = Path.GetDirectoryName(path);//c:\abc path = Path.GetExtension(path);//扩展名 .txt path = Path.GetFileName(path);//文件名.后缀名 1.txt path = Path.GetFileNameWithoutExtension(path);//不含后缀的文件名 1 path = Path.GetFullPath("11-Path类.exe" );//文件全路径(相对文件的全路径 一般也不用此方法) F:\PIZIYIMAO\11-Path类\bin\Debug\11-Path类.exe path = Path.GetTempFileName();//临时文件夹保存路径 自动创建文件 C:\Documents and Settings\PIZIYIMAO\Local Settings\Temp\tmp5E.tmp path = Path.GetTempPath();//获取临时文件夹保存路径 C:\Documents and Settings\PIZIYIMAO\Local Settings\Temp\ Console.WriteLine(path); Console.Read(); } } }
2、操作目录类 Directory与DirectoryInfo
using System; using System.IO; namespace _12_Directory { class Program { static void Main( string[] args) { DirectoryInfo dic = new DirectoryInfo( "c:\\abc" ); //dic.Name; //获取文件名 //dic.FullName; //获取文件全路径 功能要比Directory强大 区别在于它是实例类 而后者是静态类 Directory .CreateDirectory("c:\\abc" ); //创建文件夹 Directory .CreateDirectory("c:\\abc\\1\\2\\3\\4\\5\\6\\7" ); //连续创建多级文件夹 if (Directory .Exists( "c:\\abc")) //判断是否存在文件夹 { Directory .Delete("c:\\abc" ); //如果存在则删除 如果文件夹为空能正常删除 不为空则会报错 "目录不是空的" Directory .Delete("c:\\abc" , true); //true则指定 如果文件夹不为空 同样执行删除操作 } string [] paths = Directory .GetDirectories( "c:\\abc"); //获取目录中所有子目录名称 注意只取下一级别 即c:\abc\1 如获取windows文件夹下所有文件夹路径可以使用此方法 string [] paths2 = Directory .GetDirectories( "c:\\windows", "$*" );//以上方法重载实现 检索以$开头的文件 string [] paths3 = Directory .GetDirectories( "c:\\abc", "*" , SearchOption .AllDirectories);//通配符查找文件夹中符合条件的文件 包括子级文件夹 foreach (string path in paths) { Console .WriteLine(path); } string [] files = Directory .GetFiles( "c:\\windows"); //遍历文件夹下的所有文件 string [] files2 = Directory .GetFiles( "c:\\windows", "*.ini" , SearchOption .AllDirectories);//通配符查找目录下的文件 用法类似于GetDirectories foreach (string file in files2) { Console .WriteLine(file); } //目录操作最重要的就是 GetFiles和GetDirectories方法 Directory .GetParent("c:\\abc\\1\\2\\3\\4\\5\\6\\7" ); //返回7文件夹的父级目录 c:\abc\1\2\3\4\5\6 Console .Read(); } } }
3、文件类File
using System; using System.IO; using System.Text; namespace _13_File { class Program { static void Main( string[] args) { //file静态类 使用file类时需要注意文件默认编码的使用 如果编码不正确 文件中会显示乱码 File .AppendAllText("c:\\1.txt" , "gb1232"); //向c:\\1.txt文件中追加 内容“gb2312” //如果存在写入文件 if (File .Exists( "c:\\1.txt")) { File .WriteAllText("c:\\1.txt" , "写入中文有时会出现乱码 需要使用第三个参数 指定Encoding文件的编码格式 Default为默认格式" ,Encoding .Default);//WriteAllText是彻底的覆盖 而AppendAllText是追加 } //File.ReadAllText();//读取文件不再列举 以下方法查看文档不再举例 //string[] ReadAllLines(string path) //读取文本文件到字符串数组中 //string ReadAllText(string path) //读取文本文件到字符串中 //WriteAllLines(string path,string[] contents),//将字符串数组逐行保存到文件path中,会覆盖旧内容。 FileInfo fi = new FileInfo( "c:\\2.txt" );//实例化的类 功能比file要强大 fi.AppendText(); //它有很多的方法 和属性 自己查看 文档 Console .Read(); } } }
C#开发:openfiledialog的使用
C#开发:openfiledialog的使用 文件对话框(FileDialog) 一、打开文件对话框(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);
相关文章推荐
- 腾讯2017暑期实习生编程题
- cannot merge new index 65555 into a non-jumbo instruction!
- 简单shellcode
- 几个小例子--memory leak
- 几个小例子--memory leak
- CDOJ 29 飞镖(dart) 解题报告
- ubuntu 16.04 安装 java 8 + eclipse
- 西湖徒步
- 一般图匹配带花树
- Maven 那点事儿 , maven 不同环境打包方案
- Valid Palindrome
- 在win7上安装ubuntu12.04双系统(uefi主板)
- php 在页面中调试错误(解决php错误500)
- Spark Scheduler模块源码分析之DAGScheduler
- Spark Scheduler模块源码分析之DAGScheduler
- Spark Scheduler模块源码分析之DAGScheduler
- Java 集合 JDK1.7的LinkedList
- android.support.v7.internal.widget.ActionBarOverlayLayout Couldn't Be Initialized
- iOS 图片转NSData-b
- Clone Graph