当前位置: 移动技术网 > IT编程>开发语言>.net > Path类与Directory类与File类对路径/目录/文件的操作实例

Path类与Directory类与File类对路径/目录/文件的操作实例

2017年12月12日  | 移动技术网IT编程  | 我要评论

ps2金手指,爱情里的眼泪简谱,突袭宝库

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();
}
}
}

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网