- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 文件操作;9.1 基本概念;9.1.1 认识C#的文件处理系统;同样,在C#语言中进行文件操作时,用户也不需要关心文件的具体存储格式。只要利用编程环境封装好的对文件进行操作的统一外部接口,就可以保证程序在不同的文件系统上进行良好的移植。;9.1.2文件和流;流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道或者TCP/IP套接字。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。除了和磁盘文件直接相关的文件流以外,流还有很多类型。流可以分布在网络中、内存中或者磁带中,分别称为网络流,内存流和磁带流等。;流的三种基本操作:;9.2 文件和目录;9.2.1 目录操作;DirectoryInfo类的所有方法都是实例方法。也就是说,要想使用DirectoryInfo类所提供的方法就必须实例化一个属于DirectoryInfo类的对象。由此可以看出如果我们相对同一个目录进行多次重复操作的时候,我们应该考虑使用DirectoryInfo类的实例方法,而不是Directory类的静态方法。;【例9-2】假定在计算机C:\ 盘根目录下有一个名称为d1的目录,在该目录中还有d11和d12两个子目录,在d11目录中也有两个子目录分别为d111和d112。编写程序,遍历目录d1目录下的所有子目录并将其所有子目录名输出在控制台上。;using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace t8_2
{
class Program
{; public static void dirlist(DirectoryInfo d)
{
Console.WriteLine(d.FullName);
DirectoryInfo[] dis = d.GetDirectories();
foreach (DirectoryInfo di in dis)
{
dirlist(di); //递归调用函数本身,从而遍历整个目录下所有子目录。
}
}
static void Main(string[] args)
{
string filePath = @C:\d1;;;运行结果;9.2.2 文件操作;【例9-3】假定在计算机C:\ 盘根目录下有一个名称为d8_3的目录,并且c:\ 盘根目录下有一个名叫a.txt的文本文件。编写程序将c:\a.txt文件复制到c:\d8_3目录。复制时要对目标位置上是否已经存在有一个名叫a.txt的文件进行检测,如果已经有a.txt文件就把该文件的FileAttributes属性设置为普通读写模式,然后将该文件删除,接着再把源位置上的a.txt文件复制到目标位置。最后再把新复制过来的文件的FileAttributes属性只读并且隐藏。 ;static void Main(string[] args)
{
if (File.Exists(c:\\d8_3\\a.txt))
{
File.SetAttributes(c:\\d8_3\\a.txt, FileAttributes.Normal);
File.Delete(c:\\d8_3\\a.txt);
File.Copy(c:\\a.txt, c:\\d8_3\\a.txt);
}
else
{
File.Copy(c:\\a.txt, c:\\d8_3\\a.txt);
}; File.SetAttributes(c:\\d8_3\\a.txt, FileAttributes.ReadOnly | FileAttributes.Hidden);
Console.WriteLine(文件复制完毕!!);
}
}
}
;关于文件的创建和打开这两布操作需要和文件流对象配合使用,所以上面实例中没有使用,关于这些方法的使用会在下一节的实例中讲述。接下来我们再通过一个例子认识FileInfo类的相关内容。;【例9-4】假定在计算机C:\ 盘根目录下有一个名称为d8_4的目录,并且该目录中有若干个文件。编写程序使用FileInfo的GetFiles()方法得到目录下的所有文件句柄,然后用Delete()方法来删除该目录下的所有文件(包括文件的属性是只读、隐藏和系统
文档评论(0)