1、File类的概念:

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

File类方法的参量很多时候都是路径path。File的一些方法可以返回FileStream和StreamWriter的对象。可以 和他们配套使用。System.IO.File类和System.IO.FileInfo类

主要提供有关文件的各种操作,在使用时需要引用System.IO命名空间。

一、File类常用的操作方法

1、创建文件方法

//参数1:要创建的文件路径

File.Create(@"D:\Test\Debug1\测试.txt")

2、打开文件方法

//参数1:要打开的文件路径,参数2:打开的文件方式

File.Open(@"D:\Test\Debug1\测试.txt",FileMode.Append)

3、追加文件方法

//参数1:要追加的文件路径,参数2:追加的内容

File.AppendAllText(@"D:\Test\Debug1\测试.txt","哈哈");

4、复制文件方法

//参数1:要复制的源文件路径,参数2:复制后的目标文件路径,参数3:是否覆盖相同文件名
 File.Copy(@"D:\Test\Debug1\测试.txt", @"D:\Test\Debug2\测试1.txt", true);

5、移动文件方法

//参数1:要移动的源文件路径,参数2:移动后的目标文件路径
File.Move(@"D:\Test\Debug1\测试.txt", @"D:\Test\Debug3\测试2.txt");

6、删除文件方法

//参数1:要删除的文件路径
 File.Delete(@"D:\Test\Debug1\测试.txt");

7、设置文件属性方法

//参数1:要设置属性的文件路径,参数2:设置的属性类型(只读、隐藏等)
File.SetAttributes(@"D:\Test\Debug1\测试.txt", FileAttributes.Hidden);

8、 判断文件是否存在的方法:File.Exist

public static bool Exists(string path); 

9、使用File类读取数据

         /// <summary>
/// 使用File类读取数据
/// </summary>
/// <param name="path">要读取文件的路径</param>
/// <returns>返回读取的TXT文件的字符串</returns>
public static string GetString(string path)
{
byte [] buffer= File.ReadAllBytes(path);
string str = Encoding.UTF8.GetString(buffer, , buffer.Length);
return str;
}

10、使用File类写入数据

         /// <summary>
/// 使用file类写入数据
/// </summary>
/// <param name="path">要写入文件的路径</param>
/// <param name="str">要写入的字符串</param>
public static void write(string path,string str)
{
byte[] buffer = Encoding.UTF8.GetBytes(str);
File.WriteAllBytes(path,buffer); }

此外,File类对于Text文本提供了更多的支持。

· AppendText:将文本追加到现有文件
· CreateText:为写入文本创建或打开新文件
· OpenText:打开现有文本文件以进行读取

二、streamRead与streamWrite

1、概念:

2、使用streamWrite写入数据

     /// <summary>
/// 要写入文件的路径
/// </summary>
/// <param name="path"></param>
public static void Write(string path,string str)
{
using (StreamWriter sw = new StreamWriter(path))
{
sw.Write(str);
}
}

3、使用streamRead读取数据

        /// <summary>
/// 要读取文件的路径
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public static string Read(string path)
{
StringBuilder sb = new StringBuilder();
using (StreamReader sr = new StreamReader(path,Encoding.UTF8))
{
while(!sr.EndOfStream)
{
sb.Append(sr.ReadLine());
}
return sb.ToString();
}
}

三、对文件路径操作的Path类

1、概念:

对包含文件或目录路径信息的 String 实例执行操作。 这些操作是以跨平台的方式执行的。

路径是提供文件或目录位置的字符串。

路径可以包含绝对或相对位置信息。

若要确定当前目录,请调用 Directory.GetCurrentDirectory。

Path 类的所有成员都是静态的,因此无需具有路径的实例即可被调用。

常用方法:

 

Path.GetFullPath 方法

返回指定路径字符串的绝对路径

——语法:

public static string GetFullPath(

string path

)

——参数

path

类型:System.String

要为其获取绝对路径信息的文件或目录。

——返回值

类型:System.String

path 的完全限定的位置,例如“C:\MyFile.txt”。

备注:path 指定的文件或目录不需要存在。 例如,如果 c:\temp\newdir 是当前目录,则对文件名(例如 test.txt)调用 GetFullPath 将返回 c:\temp\newdir\test.txt。 该文件不需要存在。

Path.GetFileName 方法

返回指定路径字符串的文件名和扩展名。

与GetFullPath 方法 进行逆操作

Path.GetDirectoryName 方法

返回指定路径字符串的目录信息。

——语法:

public static string GetDirectoryName(

string path

)

——参数

path

类型:System.String

文件或目录的路径。

——返回值

类型:System.String

path 的目录信息,如果 path 表示根目录或为 null,则该目录信息为 null。 如果 path 没有包含目录信息,则返回 String.Empty。

——备注:

由于返回的路径不包含 DirectorySeparatorChar 或 AltDirectorySeparatorChar,因此将返回的路径传回 GetDirectoryName 方法会导致随后每次调用得到的字符串时截断一个文件夹级别。 例如,将路径“C:\Directory\SubDirectory\test.txt”传入 GetDirectoryName 方法将返回“C:\Directory\SubDirectory”。 将该字符串“C:\Directory\SubDirectory”传入 GetDirectoryName 将导致返回“C:\Directory”。

Path.Combine 方法 (String, String)

将两个字符串组合成一个路径。返回字符串。

最多支持四个路径的组合

 /*
1.更改路径字符串的扩展名
public static string ChangeExtension(string path,string extension)
参数:
path(String):要修改的路径信息.
extension(String):新的扩展名。
返回值:
String,修改后的路径字符串。*/
//如果 extension 是 null,则返回的字符串包含指定的路径,其扩展名已移除(点还在)。
string s1 = Path.ChangeExtension(@"D:\wang1\wang.txt", "");//返回D:\wang1\wang.
Console.WriteLine(s1);
//如果 path 不具有扩展名,并且 extension 不是 null,则返回的路径字符串包含 extension,它追加到 path 的结尾。
string s2 = Path.ChangeExtension(@"D:\wang1\wang", ".dll");//返回D:\wang1\wang.dll
Console.WriteLine(s2);
//仅更改路径字符串中的扩展名,并不会改变实际文件的扩展名或者目录。 /*
2. 合并两个字符路径字符串
public static string Combine(string path1,string path2)
参数:
path1(String) ,第一个路径
path2(String), 第二个路径
返回值:
String ,合并后的路径字符串。
常见的合并操作为:
*/
string path3 = @"c:\目录";
string path4 = @"install.txt";
string s5 = Path.Combine(path3, path4);
Console.WriteLine(s5);
//返回:"c:\目录\install.txt" /*
3.获取指定路径字符串的目录信息
public static string GetDirectoryName(string path)
*/ Console.WriteLine(Path.GetDirectoryName(@"d:\wang3\wang\wang.text"));//返回文件的目录名 //4.获取指定路径字符串的扩展名
Console.WriteLine(Path.GetExtension(@"d:\wang\wang.txt"));

四、Directory 

公开用于创建、移动和枚举通过目录和子目录的静态方法。无法继承此类。

——备注

--------------------------------------------------------------------------------

将 Directory 类用于典型操作,如复制、移动、重命名、创建和删除目录。也可将 Directory 类用于获取和设置与目录的创建、访问及写入操作相关的 DateTime 信息。

由于所有的 Directory 方法都是静态的,所以如果只想执行一个操作,那么使用 Directory 方法的效率比使用相应的 DirectoryInfo 实例方法可能更高。大多数 Directory 方法要求当前操作的目录的路径。

Directory 类的静态方法对所有方法都执行安全检查。如果打算多次重用某个对象,可考虑改用 DirectoryInfo 的相应实例方法,因为并不总是需要安全检查。

常用方法:

 

Directory.GetFiles 方法 (String)

返回指定目录中的文件的名称。

命名空间:System.IO

——语法:

public static string[] GetFiles (

string path

)

——参数

path

将从其检索文件的目录。

——返回值

指定目录中文件名的 String 数组。文件名包含完整路径。

——备注:

文件名包含完整路径。

此方法与将星号 (*) 指定为搜索模式的 GetFiles 方法相同。

允许 path 参数指定相对或绝对路径信息。相对路径信息被解释为相对于当前工作目录。若要获取当前工作目录,请参见 GetCurrentDirectory。

path 参数不区分大小写。

Directory.GetFiles 方法 (String, String)   //重载的

 

返回指定目录中与指定搜索模式匹配的文件的名称。

——语法:

public static string[] GetFiles (

string path,

string searchPattern

)

——参数

path

要搜索的目录。

searchPattern

要与 path 中的文件名匹配的搜索字符串。此参数不能以两个句点(“..”)结束,不能在 DirectorySeparatorChar 或 AltDirectorySeparatorChar 的前面包含两个句点(“..”),也不能包含 InvalidPathChars 中的任何字符。

——返回值

一个 String 数组,它包含指定目录中与指定搜索模式匹配的文件的名称。文件名包含完整路径。

——备注:

文件名包含完整路径。

在 searchPattern 中允许使用以下通配说明符。

通配符

*

零个或多个字符。

?

正好一个字符。

通配说明符以外的字符表示它们自己。例如,searchPattern 字符串“*t”搜索 path 中所有以字母“t”结尾的名称。searchPattern 字符串“s*”搜索 path 中所有以字母“s”开头的名称。

 

其它常用 Directory 成员

——公共方法:

CreateDirectory  已重载。 创建指定路径中的所有目录。

Delete    已重载。 删除指定的目录。

Equals   已重载。 确定两个 Object 实例是否相等。 (从 Object 继承。)

GetCreationTime  获取目录的创建日期和时间。

GetCurrentDirectory  获取应用程序的当前工作目录。

GetDirectories       已重载。 获取指定目录中子目录的名称。

GetFileSystemEntries  已重载。 返回指定目录中所有文件和子目录的名称。

GetParent  检索指定路径的父目录,包括绝对路径和相对路径。

GetType   获取当前实例的 Type。 (从 Object 继承。)

Move  将文件或目录及其内容移到新位置。

ToString   返回表示当前 Object 的 String。 (从 Object 继承。)

=========================================================================

以下代码段是本人的一点实践,

检索某文件夹下所有包含检索关键字的文件,打印到屏幕:

class Program
{
static void Main(string[] args)
{
//检索某文件夹下所有包含检索关键字的文件,打印到屏幕
#region test
// Directory //string path = Path.GetFullPath("1.txt");
//Console.WriteLine(path);
//string tem=Path.GetFileName(path);
//Console.WriteLine(tem);
//Console.ReadKey();
#endregion
string path = (@"F:\pdf"); //要找的目录
string reg = @".*美.*\..*"; //正则表达式
//string reg = @".+美.+\..+";
string[] filename = Directory.GetFiles(path);//Directory 从磁盘读取文件名存入字符串数组 // MatchCollection mc=null;
for (int i = ; i < filename.Length; i++)
{ string temp = Path.GetFileName(filename[i]); //把文件的完整路径转换成 文件名.扩展名 形式
MatchCollection mc = Regex.Matches(temp, reg); //正则表达式进行匹配, //if (mc != null) //mc 始终不为null,所以始终打印
//{
// Console.WriteLine(filename[i]);
//} foreach (Match t in mc)
{
Console.WriteLine(filename[i]);//打印结果,完整路径
Console.WriteLine(t); //打印结果,文件名.扩展名 形式
} //for ( i = 0; i < mc.Count ; i++)
//{
// Console.WriteLine(filename[i]);
//}
}
Console.ReadKey(); }
}

使用File类、StreamRead和StreamWrite读写数据、以及Path类操作文件路径和Directory的更多相关文章

  1. 【自制工具类】struts返回json数据包装格式类

    自己写的一个给struts返回的json数据包装格式类,不喜勿喷,原创,需在项目中引入com.alibaba.fastjson的jar包 先看下效果(这里没有使用msg,有兴趣的往下看): 上demo ...

  2. Python之IO编程——文件读写、StringIO/BytesIO、操作文件和目录、序列化

    IO编程 IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口.从 ...

  3. C# Path 有关于文件路径等问题类(转)

    C# Path 标签:C#, Path C-Sharp  0 Path handles file path processing. The .NET Framework provides effect ...

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

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

  5. 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite ) - Zery-zhang

    一 基本介绍 操作文档,文件夹,需要用到的类 1 Directory (静态类) :      用于创建.移动和删除等操作通过 目录 和子 目录 DirectoryInfo (非静态): 2 File ...

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

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

  7. java 输入输出IO流 RandomAccessFile文件的任意文件指针位置地方来读写数据

    RandomAccessFile的介绍: RandomAccessFile是Java输入输出流体系中功能最丰富的文件内容访问类,它提供了众多的方法来访问文件内容,它既可以读取文件内容,也可以向文件输出 ...

  8. .net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、压缩流GZipStream、拷贝大文件、序列化和反序列化

    1.集合(1)ArrayList内部存储数据的是一个object数组,创建这个类的对象的时候,这个对象里的数组的长度为0(2)调用Add方法加元素的时候,如果第一次增加元神,就会将数组的长度变为4往里 ...

  9. 第31天学习打卡(File类。字符流读写文件)

    File类 概念 文件,文件夹,一个file对象代表磁盘上的某个文件或者文件夹 构造方法  File(String pathname) File(String parent,String child) ...

随机推荐

  1. PHP实现执行定时任务

    首先用命令检查服务是否在运行 systemctl status crond.service 如果服务器上没有装有crontab ,则可以执行 yum install vixie-cron yum in ...

  2. DialogFragment: DialogFragment的一些理解

    Android 自3.0版本引入了DialogFragment这个类,并推荐开发者使用这个类替代之前经常使用的Dialog类,那么DialogFragment相对于之前的Dialog究竟有什么优势呢? ...

  3. C++中的break、continue、goto语句

    break.continue.goto break用于提前结束循环.只能打断一层循环.是把一层循环全部结束掉.continue则是提前结束循环内单次,继续循环下一步.

  4. python获取公网ip的几种方式

    python获取公网ip的几种方式 转 https://blog.csdn.net/conquerwave/article/details/77666226 from urllib2 import u ...

  5. shell编程系列16--文本处理三剑客之awk模式匹配的两种方法

    shell编程系列16--文本处理三剑客之awk模式匹配的两种方法 awk的工作模式 第一种模式匹配:RegExp 第二种模式匹配:关系运算匹配 用法格式对照表 语法格式 含义 RegExp 按正则表 ...

  6. 使用origin画SCI论文图

    使用origin画SCI论文图 觉得有用的话,欢迎一起讨论相互学习~Follow Me start 使用的是OriginPro这款软件,这款软件的特点是 一个字 好 . 新建工作簿并导入数据 可以使用 ...

  7. [Feature] Final pipeline: custom transformers

    有视频:https://www.youtube.com/watch?v=BFaadIqWlAg 有代码:https://github.com/jem1031/pandas-pipelines-cust ...

  8. vfp

    DROP 从目前资料库中移出资料表格,并从磁碟上将它删除.DELETE 标示要删除的记录.只是标记,没有删除.ZAP 从资料表格中移除所有记录,仅保留资料表格结构.PACK 从目前资料库中移除标示为删 ...

  9. ubuntu18.04安装flat-remix-gnome主题

    flat-remix-gnome主题的github地址:https://github.com/daniruiz/flat-remix-gnome ubuntu下进行如下操作: sudo add-apt ...

  10. UML学习笔记:类图

    UML学习笔记:类图 有些问题,不去解决,就永远都是问题! 类图 类图(Class Diagrame)是描述类.接口以及它们之间关系的图,用来显示系统中各个类的静态结构. 类图包含2种元素:类.接口, ...