C# Directory和Directory Info的应用及文件读写2009-06-19 本站 L小凤一,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类可以用于处理任何数据文件。