一 基本介绍

操作文档,文件夹,需要用到的类

1 Directory (静态类) :      用于创建、移动和删除等操作通过 目录 和子 目录

DirectoryInfo (非静态):

2 File (静态类)  : 提供用于创建、复制、删除、移动和打开文件的静态类,并协助创建 FileStream 对象

FileInfo (非静态)

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

StreamWriter : 实现一个 TextWriter,使其以一种特定的编码向流中写入字符

二   文件夹操作

操作文件夹用Directory 或者 DirectoryInfo

2.1 创建文件夹

         string path = @"F:\TestFile";
//创建文件夹
public void CreatFolder(string path)
{
if (Directory.Exists(path))
{
Directory.Delete(path);
}
Directory.CreateDirectory(path); }

   2.2 删除文件夹

          string path = @"F:\TestFile";

          //删除文件夹
public void DeleteFolder(string path)
{
//先删除文件夹中所有文件
DirectoryInfo directoryInfo = new DirectoryInfo(path);
foreach (var directory in directoryInfo.GetFiles())
{
File.Delete(directory.FullName);
}
//文件夹必须为空
if (Directory.Exists(path))
{
Directory.Delete(path);
}
}

2.3 移动文件夹

string path = @"F:\TestFile";
string newPath = @"F:\NewFile";
//移动文件夹
public void MoveFolder(string path, string newPath)
{
if (Directory.Exists(path))
{
//移动包括文件夹在内的所有文件
Directory.Move(path,newPath);
}
}

 2.4 获取文件夹下所有文件名

string path = @"F:\TestFile";

        //获取文件夹下所有文件名
public void GetFolderAllFiles(string path)
{
DirectoryInfo directory = new DirectoryInfo(path);
var files = directory.GetFiles();
foreach (var file in files)
{
Console.WriteLine(file.Name);
Console.WriteLine(file.FullName);//带文件路径全名
}
}

三 文档操作(txt)

需要以下几个类:Directory 或者DirectoryInfo ,File 或者 FileInfo

 3.1 创建文档

string path = @"F:\TestFile\test.txt";
//创建文档
public void CreateFile(string path)
{
//文件路径用Directory判断是否存在
if (Directory.Exists(path))
{
//先删除存在的文件
if (File.Exists(path))
{
File.Delete(path);
}
File.Create(path);
}
}
展开代码

   3.2 复制文档

string path = @"E:\TestFile\test.txt";
string newPath = @"E:\Test2File\newTest.txt";
//复制文档
public void CopyFile(string sourcePath, string destPath)
{
//只能针对同一卷轴(盘)下的文件
//destPath 为要复制的新地址,(destPath指定的文件名必须是未创建的,执行Copy方法时才会创建该文件)
if (File.Exists(sourcePath))
{
File.Copy(sourcePath, destPath);
}
}

 3.3  移动文档

string path = @"E:\TestFile\test.txt";
string newPath = @"E:\Test2File\newTest.txt";
//移动文档
public void MoveFile(string SourcePath, string destPath)
{
//只能针对同一卷轴(盘)下的文件
//destPath 为要移动的新地址(destPath指定的文件名必须是未创建的,执行Move方法时会将Source文件移动到新地址可以重新命名)
if (File.Exists(SourcePath))
{
File.Move(SourcePath, destPath);
}
}

 3.4  删除文档

string path = @"E:\TestFile\test.txt";
//删除文档
public void DeleteFile(string path)
{
if (File.Exists(path))
{
File.Delete(path);
}
}

 四 文档读写操作(文档流操作) 对 第三点  的扩充

需要以下类:FileStream 此类继承了Stream 类并重写了大部分方法,并提供多个带参构造函数

   4.1 写入字符

string path = @"E:\TestFile\test.txt";
//往以有文档中写入字符
public void CreateText(string path)
{
StreamWriter writer=File.CreateText(path);
//直接写入字符的write方法,每次写入都会覆盖之前的内容
writer.Write("你好!");
//把缓存流的数据写入到基础流
writer.Flush();
//关闭StreamWriter对象及基础流
writer.Close();
}

 4.2 以流的形式写入文档

//将一个文件内的数据,以流的方式读取,然后以流的形式写入到另一个文件中
public void ReadAndWriteFile()
{
string readPath = @"E:\TestFile\ReadStream.txt";
string writePath = @"E:\TestFile\WriteStream.txt"; //Read
//打开现有文件以进行读取
FileStream rs = File.OpenRead(readPath);
byte[] buffer = new byte[rs.Length];
rs.Read(buffer, , buffer.Length); //将文件内容读到字节流中
rs.Close();
//Write
//打开现有文件以进行写入
FileStream stream = File.OpenWrite(writePath);
stream.Write(buffer, , buffer.Length);
stream.Flush();
stream.Close(); }

4.3 以流的形式追加到文档

//将一个文件内的数据,以流的方式读取,然后以流的形式写入到另一个文件中(追加内容)
public void ReadAndWriteNewFile()
{
string readPath = @"E:\TestFile\ReadStream.txt";
string writePath = @"E:\TestFile\WriteStream.txt";
//Read
FileStream rd = File.Open(readPath,FileMode.Open);
byte[] buffer = new byte[rd.Length];
rd.Read(buffer, , buffer.Length);
rd.Close(); //Write
FileStream wt = File.Open(writePath,FileMode.Append);//设为追加到原文件中
wt.Write(buffer,,buffer.Length);
wt.Flush();
wt.Close();
}

五 读写流操作文档

需要以下几个类:StreamReader StreamWriter

  5.1 字符串读取写操作

//读取文档并写入到另一文档中(用字符串写入的方法)
public void ReadFile()
{
string readPath = @"E:\TestFile\ReadStream.txt";
string writePath = @"E:\TestFile\WriteStream.txt"; using (StreamReader reader = new StreamReader(readPath,Encoding.Default)) //用默认的编码格式(必须要转格式否则乱码)
{ var rd = reader.ReadToEnd(); StreamWriter writer = new StreamWriter(writePath,true,Encoding.UTF8);//需要转成UTF-8的格式(可转可不转格式)
writer.Write(rd);
writer.Flush();
writer.Close(); }
}

5.2 字符流读写操作

//用字符流的方式读写文档
public void ReadWriteByByte()
{ string readPath = @"F:\TestFile\ReadStream.txt";
string writePath = @"F:\TestFile\WriteStream.txt";
using (StreamReader reader = new StreamReader(readPath,Encoding.Default))//需要指定编码,否则读到的为乱码
{
#region 错误方法
//Read 注意:文本中的字符只能被读取一次,第二次时读取不到了
//var readStr =reader.ReadToEnd();//第一次读取
//char[] buffer = new char[readStr.Length];
//reader.Read(buffer, 0, buffer.Length);//第二次读取时,读不到值
#endregion
//Read
char[] buffer = new char[];
reader.Read(buffer, , buffer.Length);
//Write
StreamWriter writer = new StreamWriter(writePath,true,Encoding.UTF8);
writer.Write(buffer, , buffer.Length);
writer.Flush();
writer.Close();
}

操作文件方法简单总结(File,Directory,StreamReader,StreamWrite ) - Zery-zhang的更多相关文章

  1. 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite )

    对于文件夹,文档的操作一直处于一知半解状态,有时间闲下来了,好好练习了一把,对文档,文件的操作有了一个基本的认知, 若要深入了解,还是得通过实际的项目才行了,好了废话不多说,上酸菜!! 注:红色标题为 ...

  2. 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite )(转载)

    本文转自http://www.cnblogs.com/zery/p/3315889.html 对于文件夹,文档的操作一直处于一知半解状态,有时间闲下来了,好好练习了一把,对文档,文件的操作有了一个基本 ...

  3. 【Python】 文件和操作文件方法

    文件 ■ 基本的文件用法 f = open("path","mode") mode有a,w,r,b,+等.默认为r.模式与打开文件时的动作有关系,比如用w打开的 ...

  4. linq操作文件方法

    备忘 string directory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); List<File ...

  5. 【Android Studio 小技巧】一键查看文件方法结构目录File Structure

    看源代码的时候,如果可以查看class中的所有方法,可以提高效率.Android Studio 中可以使用快捷键一键显示所有方法的目录. Mac: command + fn + F12 (在mac中的 ...

  6. 使用File类、StreamRead和StreamWrite读写数据、以及Path类操作文件路径和Directory

    1.File类的概念: File类,是一个静态类,主要是来提供一些函数库用的.静态实用类,提供了很多静态的方法,支持对文件的基本操作,包括创建,拷贝,移动,删除和 打开一个文件. File类方法的参量 ...

  7. java File文件操作共用方法整理

    package org.jelly.util; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io ...

  8. .net(C#)操作文件的几种方法汇总

    .net(C#)操作文件的几种方法汇总 System.IO命名空间下类的用法:在System.IO名称空间中包含了用于文件输入输出的主要类.File:实用类,提供许多静态方法,用于移动.复制和删除文件 ...

  9. C#操作文件夹及文件的方法的使用

    本文收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加.拷贝.删除.移动文件.创建目录.递归删除文件夹及文件.指定文件夹下面的所有内容copy到目标文件夹下面.指定文件夹下面的所有内容 ...

随机推荐

  1. mysql复制原理与机制一

    复制原理:复制需要二进制日志记录数据库上的改变 slave的IO线程复制把master上的Binary log读取到本地的relay log里SQL线程负责把relay log恢复到数据库数据里 sh ...

  2. Linux: How to delete a disk or LUN reference from /dev

    In AIX, there is rmdev command to remove a disk/LUN from /dev directory i.e to make the disk/LUN una ...

  3. 多线程设计模式(三):Master-Worker模式

    Master-Worker模式是常用的并行模式之一,它的核心思想是,系统有两个进程协作工作:Master进程,负责接收和分配任务:Worker进程,负责处理子任务.当Worker进程将子任务处理完成后 ...

  4. openstack及组件简要介绍

    为什要用云? 一.简单的说就是对资源更加合理的分配,使用,比如硬件的数量,带宽等等这些,因为你不能机器买来不需要了再卖掉(当然也可以),带宽跟机房签合同得来一年的,中间不够了也不能加,超了也不退钱 二 ...

  5. xunsearch基本使用

    目录 基本实践 异常捕获 XSDocument 文档 添加操作 ini 更新.修改文档 删除文档 清空索引 平滑重建索引 使用索引缓冲区 自定义 SCWS 词库 基本实践 <?php // 引入 ...

  6. Angular2快速入门-1.创建第一个app

    一.环境搭建 Angular2 运行在nodejs 环境下,需要我们先创建好nodejs环境,具体操作   1.下载安装Nodejs,参考网址,https://nodejs.org/en/ 选择64位 ...

  7. Python——List

    一.集成开发环境 集成开发环境(IDE,Integrated development Enviroment)是用于提供程序开发环境的应用程序,一般包括代码编辑器.编译器.调试器和图形用户界面等工具.集 ...

  8. 使用PreparedStatement接口实现增删改操作

    直接上下代码: package com.learn.jdbc.chap04.sec02; import java.sql.Connection; import java.sql.PreparedSta ...

  9. Android控件使用自定义字体

    我们不可能只满足于系统自带的字体(太丑),其实控件自定义字体也很简单.. 1.首先找到该字体的ttf文件. 2.把字体文件放在scr/mian/assets/fonts下,如果没有该路径则自己创建. ...

  10. 使用Selenium登录新浪微博

    为了总结一下Selenium的用法,具体用了这个例子来说明一下. Selenium简单来说,就是通过程序驱动一个浏览器,并且可以通过程序来帮你做一些事情,例如点击.填表呀之类的. 换句话说,你在浏览器 ...