C#文件操作
原创转自: http://www.cnblogs.com/qinfei/archive/2005/11/03/268229.html
另一篇更全面的文章: http://space.itpub.net/23109131/viewspace-662112
文件操作: 检查 创建 读取 写入 修改 删除
目录操作: 检查 创建 读取 写入 修改 删除
文件操作
执行此操作...
请参考本主题中的示例...
创建文本文件
将文本写入文件
写入文本文件
将文本写入文件
读取文本文件
从文件中读取文本
将文本追加到文件
File.AppendText FileInfo.AppendText
重命名或移动文件
删除文件
复制文件
获取文件大小
获取文件属性
设置文件属性
确定文件是否存在
读取二进制文件
读取和写入新创建的数据文件
写入二进制文件
读取和写入新创建的数据文件
检索文件扩展名
检索文件的完全限定路径
检索路径中的文件名和扩展名
更改文件扩展名
目录操作
System.IO 类
目录操作
string[] drives = Directory.GetLogicalDrives(); //本地驱动器的名称,如:C:\等
string path = Directory.GetCurrentDirectory(); //获取应用程序的当前工作目录
Path.GetFileName(@"c:\dir\file.txt"); //获取子目录的名称,result的结果是file.txt
Directory.GetFiles(路径和文件名) //获取指定目录中的文件名(文件列表)
DirectoryInfo di = new DirectoryInfo(@"f:\MyDir"); //构造函数创建目录
DirectoryInfo di=Directory.CreateDirectory(@"f:\bbs"); //创建对象和创建目录
if (di.Exists == false) //检查此目录是否存在
di.Create(); //创建目录
DirectoryInfo dis = di.CreateSubdirectory("SubDir"); //创建具有相对路径的子目录
dis.Delete(true); //删除新创建的子目录
di.Delete(true); //删除创建目录
文件操作
Directory.Delete(@"f:\bbs2", true); //删除目录及其子目录和内容(如果为 false,则无法删除包含内容的目录(包括子目录))
Directory.GetDirectories 方法 //获取指定目录中子目录的名称
string[] dirs = Directory.GetDirectories(@"f:\", "b*");
Console.WriteLine("在此目录中b起始子目录包括{0}个!", dirs.Length);
foreach (string dir in dirs) { Console.WriteLine(dir); }
Directory.GetFileSystemEntries //获取指定目录中的目录和文件名
Directory.GetLogicalDrives //检索此计算机上的格式为”<驱动器号>:\“逻辑驱动器的名称,[语法同上]
Directory.GetParent //用于检索父目录的路径。
DirectoryInfo a = Directory.GetParent(path);
Console.WriteLine(a.FullName);Directory.Move //移动目录及其中的所有文件
Directory.Move(@"f:\bbs\1", @"f:\bbs\2"); //将文件夹1将里面的文件剪切到一个文件夹中2内 文件夹2它刚刚创建
Stream // 对字节的读取和写入操作(包括对异步操作的支持) Reading Writing Seeking
BinaryReader和BinaryWriter // 从字符串或原始数据到各种流的读取和写入操作
FileStream类通过Seek()随机访问文件的方法,默认为同步
TextReader和TextWriter //用于gb2312字符输入和输出
StringReader和StringWriter //读取和写入字符串中的字符
StreamReader和StreamWriter //读取和写入流中的字符
BufferedStream 一种向其他流(如网络流)添加缓冲的流.
MemoryStream 未缓冲的流
NetworkStream 互联网上的流
//编码转换
Encoding e1 = Encoding.Default; //获取此页面的默认代码
Byte[] bytes = e1.GetBytes("中国人民解放军"); //转换为二进制
string str = Encoding.GetEncoding("UTF-8").GetString(bytes); //转回UTF-8编码
//文本文件操作:创建/读取/拷贝/删除
using System;
using System.IO;
class Test
{
string path = @ "f:\t.txt" ;
public static void Main()
{
//创建和写入(覆盖现有文件)
if (!File.Exists(path))
{
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine("Hello");
}
}
//读取文件
using (StreamReader sr = File.OpenText(path))
{
string s = "";
while ((s = sr.ReadLine()) != null )
{
Console.WriteLine(s);
}
}
//删除/拷贝
try
{
File.Delete(path);
File.Copy(path, @"f:\tt.txt");
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
//流文件操作
private const string name = "Test.data";
public static void Main(String[] args)
{
//打开文件() ,或通过File创建一个类似这样的展台:fs = File.Create(path, 1024)
FileStream fs = new FileStream(name, FileMode.CreateNew);
//转换为字节 写入数据(可以用中文书写)
Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
//字节数组,字节偏移量,写入的最大字节数
fs.Write(info, 0, info.Length);
w.Close();
fs.Close();
//打开文件
fs = new FileStream(name, FileMode.Open, FileAccess.Read);
//读取
BinaryReader r = new BinaryReader(fs);
for (int i = 0; i < 11; i++)
{
Console.WriteLine(r.ReadInt32());
}
w.Close();
fs.Close();
}
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123



