您的位置:首页 > 编程语言 > C#

C# 文件操作

2012-08-01 11:35 411 查看
在.NET Framework中进行的所有的输入和输出工作都要用到流(stream),流是序列化设备(serial device)的抽象表示。

System.IO包含了用于在文件中读写数据的类。

File 类 静态实用类 提供静态方法 用于移动 复制和删除文件

Directory 类静态实用类 提供静态方法 用于移动 复制和删除文件

Path 类 用于处理路径名称

FileInfo 类 表示磁盘上的物理文件,该类包含处理文件的方法。要完成对文件的读写工作,必须创建Stream对象。

DirectoryInfo 类 表示磁盘上的文件,包含处理目录的方法。

FileStreamInfo 用作FileInfo和DirectoryInfo的基类,可以使用多态性同时处理文件和目录。

FileStream类 表示可读可写,或者均可的文件,此文件可以同步或一部的读写。

SreamReader 从流中读取字符数据,可使用FileStream将其创建为基类。

StreamWriter 向流中写入数据,使用FileStream将其创建为基类。

FileSystemWatcher 用于监控文件和目录,提供了这些文件和目录发生变化时应用程序可以捕获的事件。

System.IO.Compression 它允许使用GZIP压缩或Default压缩模式读写压缩文件。

System.Runtime.Serialization.Formatters.Binary命名空间中的BinaryFormatter类允许把对象序列化为二进制数据流,并可以反序列化这些数据。

FileStream aFile = new FileStream(filename,FileMode.Member,FileAccess.Member);

FileStream aFile = File.OpenRead(“Data.txt”);

FileInfo aFileInfo = new FileInfo(“Data.txt”);

FileStream aFile = aFileInfo.OpenRead();

DirectoryInfo dir = new DirectoryInfo(Path);

FileSystemInfo[]fsi = dir.GetFileSystemInfos);//获取所有子目录及文件

文件位置

Seek()方法。

AFile.Seek(8,SeekOrigin.Begin);//将文件指针移动到文件的第八个字节。

FileStream myReadStream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Read);
myReadStream.Seek(6, SeekOrigin.Begin);
myReadStream.Read(byData, 0, 128);


StreamReader

实现一个 TextReader,使其以一种特定的编码从字节流中读取字符。

StreamReader 旨在以一种特定的编码输入字符,而 Stream 类用于字节的输入和输出。使用 StreamReader 读取标准文本文件的各行信息。

除非另外指定,StreamReader 的默认编码为 UTF-8,而不是当前系统的 ANSI 代码页。UTF-8 可以正确处理 Unicode 字符并在操作系统的本地化版本上提供一致的结果。

计算机上的驱动器

class Program
{
static void Main(string[] args)
{
DriveInfo[] Drives;
ArrayList hardDisk = new ArrayList(); ;
Drives = DriveInfo.GetDrives();
int drvCount = Drives.Length;
Console.WriteLine("本地计算机上共有逻辑驱动器 " + drvCount + " 个,分别是:");
foreach (DriveInfo item in Drives)
{
Console.Write(item + "\t");
if (item.DriveType == DriveType.Fixed)
{
hardDisk.Add(item.ToString());
}
}
Console.WriteLine("\n本地计算机上共有本地驱动器 " + hardDisk.Count + " 个,分别是:");
foreach (var Disk in hardDisk)
{
Console.Write(Disk + "\t");
}
string drvName = @"E:\";
DriveInfo drvInfo = new DriveInfo(drvName);
Console.WriteLine("驱动器E的信息如下:");
Console.WriteLine("名 称: " + drvInfo.Name);
Console.WriteLine("卷 标: " + drvInfo.VolumeLabel);
Console.WriteLine("驱动器类型: " + drvInfo.DriveType);
Console.WriteLine("文件系统类型: " + drvInfo.DriveFormat);
Console.WriteLine("总共空间大小:" + drvInfo.TotalSize);
Console.WriteLine("剩余空间大小:" + drvInfo.TotalFreeSpace);
Console.WriteLine("根目录:" + drvInfo .RootDirectory );

//string path = @"D:\My Documents";
//string[] AllFile = Directory.GetFiles(path);
//ArrayList picFile = new ArrayList();

//for (int i = 0; i < AllFile.Length; i++)
//{
//    FileInfo fi = new FileInfo(AllFile[i]);
//    if (fi.Extension == ".jpg" || fi.Extension == ".bmp")
//        picFile.Add(AllFile[i]);
//}
//foreach (string file in picFile)
//{
//    Console.WriteLine(file);
//}
//Console.WriteLine("共找到符合条件的:{0}个文件", picFile.Count.ToString());
//string path = @"C:\aaa\bbb\ccc\dddd";
//if (!Directory.Exists(path))
//{
//    Directory.CreateDirectory(path);
//}
////Directory类的Exists()方法用来判断目录是否存在,存在则返回true;
////Directory类的CreateDirectory()方法用来创建目录

//得到所有文件
//string[] AllFile = Directory.GetFiles(@"d:\Test");
//foreach (string file in AllFile)
//{
//    File.Delete(file);
//}

//string filepath = @"D:\WorkList.txt";
////string filepath = @"F:\VStest\file.txt";
//FileInfo myfile = new FileInfo(filepath);
//FileStream fs = myfile.Create();
//fs.Close();
//myfile.Refresh();
//myfile.Delete();

Console.ReadKey();
}
}


注:本文整理自网络!!!

复制搜索

复制搜索
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: