C# Directory和Directory Info的应用及文件读写

一,Directory 和Directory Info的应用

在Asp,net的实际应用中,上传文件的实现过程中要用到有关目录的操作,来现实文件的上传工作.下面分析下用C#完成文件上传过程的核心代码,其中控件FileUpload用来获取文件/

-------------代码段----------

string filename = FileUploadFileName;//获取上传文件的名字

string filetype = FileUploadFileName.Substring(filename.LastIndexOf(".")+1).ToLower();

上传文件的格式

if (filetype == "rar" || filetype == "doc" || filetype == "txt" || filetype == "pdf")

{//判断是文件格式是否是指定的格式

if (FileUploadFileBytes.Length <= 50 * 1024 * 1024)//判断文件的大小是否满足要求

{

DirectoryInfo filedir = new DirectoryInfo(Server.MapPath("fileupload/"));//获取文件夹fileupload在系统中的相对目录.

// 创建DirectoryInfo实例对象 filedir用来指向保存上传文件的目录.

if (!Directory. Exists(filedir.ToString()))Directory类的静态方法,用来判断目录是否存在

{

Directory.CreateDirectory(filedir.ToString());//如果所要求的目录不存在,调用Directory的静态方法CreateDirectory创建目录.

}

-------------代码段----------

DirectoryInfo常用方法:

DirectoryInfo dif = new DirectoryInfo("c:\\abcd");

DirectoryInfo temp = new DirectoryInfo("c:\\atest");

DirectoryInfo temp3 = new DirectoryInfo("C:\\");

if (!dif.Exists)

dif.Create();

if (!temp.Exists)

Directory.CreateDirectory(temp.ToString());

if (temp.Exists)

temp.Delete();

dif.MoveTo(temp.ToString());

DirectoryInfo[] idr = temp3.GetDirectories();//获取当前目录下的所有子目录.

foreach (DirectoryInfo dir in idr)

Console.WriteLine(dir.FullName);

FileInfo[] files = temp3.GetFiles();

foreach (FileInfo file in files)

Console.WriteLine(file.FullName);

输出C盘子目录信息:

 

在程序运行之前和之后的C盘目录截图,比较变化的情况,多了个atest目录.

  

二. 文件读写

C#和java对于文件的操作的思路有点相似,都是采用管道技术和流操作—Stream来实现相应的功能.,开始操作文件的时候用到文件专用流:System.IO命名空间下的Filestream.,其构造函数有很多,现在先介绍一个很常用的方法: 

FileStream 构造函数 (String, FileMode); 

FileMode有:open,create,openOrcreate,createnew.append, Truncate等几种模式.

下面先看一个例子:

FileInfo mynewfile = new FileInfo("C:\\myfile.txt");//

FileStream sf = new FileStream(mynewfile.ToString(), FileMode.Create);//构造函数,以创建模式打开目标文件,如果不存在就创建相应的文件.

byte[] dataArray = new byte[100000];//字节

new Random().NextBytes(dataArray);//创建随机字节

for (int i = 0; i < dataArray.Length; i++)

{

sf.WriteByte(dataArray[i]);//将字节写入文件理.

}

其他构造方法有:

 

我在这里就不多介绍了,大家可以参考Msdn的文件.关于文件的读写还有个更好的StreamWriter/和StreamReader.下一节将继续介绍.

FielStream类操作的是字节和字节数组,字符数据易于使用,但是有些操作,比如随机文件访问(访问文件中间某点的数据),就必须由FileStream对象执行。

FielStream类维护内部文件指针,该指针指向文件中进行下一次读写操作的位置。

FileStream只能处理原始字节(raw byte),处理原始字节的功能使用FileStream类可以用于处理任何数据文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值