c# 文件操作的一些函数

来源:互联网 发布:nginx和iis 编辑:程序博客网 时间:2024/06/06 19:13
  • 遍历文件夹
public void GetAllFiles(string directoryPath){     var rootDirectory = new DirectoryInfo(directoryPath);     foreach (var file in rootDirectory.GetFiles())     {         Console.WriteLine("File Name: {0}", file.Name);     }     foreach (var directory in rootDirectory.GetDirectories())     {         Console.WriteLine("Directory Name: {0}", directory.Name);         this.GetAllFiles(directory.FullName);     } }
  • MemoryStream内存读写
public static void ShowMemoryString(string testString){     using (MemoryStream stream = new MemoryStream())     {         if (stream.CanWrite)         {             byte[] buffer = Encoding.Default.GetBytes(testString);             stream.Write(buffer, 0, buffer.Length);             byte[] resultBuffer = stream.ToArray();             string resultString = Encoding.UTF8.GetString(resultBuffer);             Console.WriteLine(resultString);         }     }} 
  • 二进制流文件读取
    第一种方法(直接申请等于数据长的缓存)
public static void ShowFileContent(string filePath) {     FileStream fileStream = File.Open(filePath, FileMode.Open);     byte[] fileContentBuffer = new byte[fileStream.Length];     fileStream.Read(fileContentBuffer, 0, fileContentBuffer.Length);     fileStream.Close();     string fileContent = Encoding.Default.GetString(fileContentBuffer);     Console.WriteLine(fileContent);} 
第二种方法(第一种的改进 使用完流之后进行关闭)
public static void ShowFileContent(string filePath) {     // Way 2     byte[] fileContentBuffer;     using (FileStream fileStream = File.Open(filePath, FileMode.OpenOrCreate))     {         fileContentBuffer = new byte[fileStream.Length];         fileStream.Read(fileContentBuffer, 0, fileContentBuffer.Length);     }     string fileContent = Encoding.Default.GetString(fileContentBuffer);     Console.WriteLine(fileContent);}
第三种方法 (每次读四字节)
public static void CopyFileContent(string sourceFilePath, string destinationFilePath) {     using (FileStream destinationFileStream = File.Open(                  destinationFilePath, FileMode.Create, FileAccess.Write))     {        // Way 1         const int bufferSize = 4 * 1024 * 1024;         byte[] fileContentBuffer = new byte[bufferSize];         using (FileStream sourceFileStream = File.Open(                   sourceFilePath, FileMode.Open, FileAccess.Read))         {             int data;             do             {                 data = sourceFileStream.Read(fileContentBuffer, 0, fileContentBuffer.Length);                 destinationFileStream.Write(fileContentBuffer, 0, data);             } while (data > 0);         }     }}

第四种 更简化

public static void ShowFileContent(string filePath) {     // Way 3     using (StreamReader fileReader = new StreamReader(          File.Open(filePath, FileMode.OpenOrCreate)))     {         Console.WriteLine(fileReader.ReadToEnd());     }}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 住宅70年到期后怎么办 在外地扣了12分怎么办 英语6级证书丢了怎么办 孩子腺样体肥大鼻子堵塞怎么办 孩子初中成绩太差怎么办 交违章罚单丢了怎么办 违章缴费单丢了,怎么办 违章处理单掉了怎么办 驾驶证被扣9分后怎么办 车子违章扣50分怎么办 车子扣了12分怎么办 大学把档案丢了怎么办 学校把档案丢了怎么办 高考考了200多分怎么办 高考报名号忘了怎么办 中考只考500分怎么办 档案自提了之后怎么办 冬天衣服上的毛怎么办 四维预约不上怎么办 交了订金后悔了怎么办 信而富认证失败怎么办 南京市民卡坏了怎么办 南京市民卡断了怎么办 义乌市民卡丢了怎么办 常熟市民卡丢了怎么办 昆山市民卡丢了怎么办 市民卡丢了看病怎么办 儿童市民卡丢了怎么办 眉毛纹的太黑怎么办 法院执行书下了怎么办 汽车临牌过期了怎么办 考试用了hb铅笔怎么办 处对象处的心累怎么办 孩子初中毕业考不上高中怎么办 单位停交社保后怎么办 58同城电话骚扰怎么办 回民误吃了猪肉怎么办 回族人吃了猪肉怎么办 商场倒闭了商铺怎么办 吃了金毓婷出血怎么办 吃过毓婷后怀孕怎么办