基本的文件 I/O 用法:1.复制目录及其文件 2.文件创建,写入,读取,删除,复制...

1.Directory类:公开用于创建,移动和枚举目录和子目录的实例方法

下面的Demo 演示了如何复制目录及其文件

static void Main() { DirectoryInfo source = new DirectoryInfo(@"D:\Practise\IO\Source"); DirectoryInfo target = new DirectoryInfo(@"D:\Practise\IO\Target"); CopyAll(source, target); } public static void CopyAll(DirectoryInfo source, DirectoryInfo target) { if (source.FullName.ToLower() == target.FullName.ToLower()) { return; } if (!target.Exists) { target.CreateSubdirectory(target.FullName); } foreach (FileInfo fi in source.GetFiles()) { Console.WriteLine(@"Copy {0}\{1}", source.FullName, fi.Name); fi.CopyTo(Path.Combine(target.FullName, fi.Name)); } //Copy each subdirectory using recursion foreach (DirectoryInfo sourceSubDir in source.GetDirectories()) { DirectoryInfo targetSubDir = target.CreateSubdirectory(sourceSubDir.Name); CopyAll(sourceSubDir, targetSubDir); } }2.FileInfo类:提供创建,删除,复制,移动和打开文件属性的实例方法

下面Demo演示了文件创建,写入,读取,复制,删除操作

static void Main() { string path = @"D:\Practise\IO\temp.txt"; FileInfo fi = new FileInfo(path); if (!fi.Exists) { using (StreamWriter sw = fi.CreateText()) { sw.Write("hello"); sw.Write("welcome"); } } using (StreamReader sr = fi.OpenText()) { Console.WriteLine(sr.ReadLine()); } try { string targetPath = path + "temp"; FileInfo fi2 = new FileInfo(targetPath); fi2.Delete(); fi.CopyTo(targetPath); fi2.Delete(); } catch (Exception e) { Console.WriteLine("The process failed: {0}", e.ToString()); }

3.FileStream 支持同步读写操作,也支持异步读写操作

//创建一个文件,向其中添加一些文本,然后从此文件中读取。 static void Main() { string filePath = @"D:\Practise\IO\temp.txt"; if (File.Exists(filePath)) { File.Delete(filePath); } using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write)) { WriteUsingUTF8(fs, "My name is guo,"); WriteUsingUTF8(fs, "i am 24 years old,\r\n"); WriteUsingUTF8(fs, "I come from xiantao city in the hubei province"); } using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { byte[] b = new byte[1024]; if (fs.Read(b, 0, b.Length) > 0) { Console.WriteLine(new UTF8Encoding().GetString(b)); } } } public static void WriteUsingUTF8(FileStream fs, string info) { byte[] b = new UTF8Encoding(true).GetBytes(info); fs.Write(b, 0, b.Length); }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值