C# 操作文件类,文件夹存在判断,创建,文件内容读写。

1、File 类 --转自msdn

常用方法:

名称 说明
AppendAllLines(String,?IEnumerable<String>)

向一个文件中追加行,然后关闭该文件。 如果指定文件不存在,

此方法会创建一个文件,向其中写入指定的行,然后关闭该文件。

AppendAllLines(String,?IEnumerable<String>,?Encoding)

使用指定的编码向一个文件中追加行,然后关闭该文件。 如果指

定文件不存在,此方法会创建一个文件,向其中写入指定的行,然

后关闭该文件。

AppendAllText(String,?String)
打开一个文件,向其中追加指定的字符串,然后关闭该文件。

如果文件不存在,此方法将创建一个文件,将指定的字符串写

入文件,然后关闭该文件。

 Create(String)  在指定路径中创建或覆盖文件。
Create(String,?Int32) 创建或覆盖指定的文件。(string path, int bufferSize)
Exists(String)  确定指定的文件是否存在。bool
Open(String,?FileMode)  以读/写访问权限打开指定路径上的 FileStream
ReadAllLines(String) 打开一个文本文件,读取文件的所有行,然后关闭该文件。
ReadAllText(String) 打开一个文本文件,读取文件的所有行,然后关闭该文件。

WriteAllText(String,?String)


创建一个新文件,向其中写入指定的字符串,然后关闭文件。

如果目标文件已存在,则覆盖该文件。

 WriteAllLines(String,?IEnumerable<String>)  创建一个新文件,向其中写入一个字符串集合,然后关闭该文件。

使用File类用于典型操作,如复制、移动、重命名、创建、打开、删除和一次将追加到单个文件。您(这个字保留,敬亲爱的读者)还可以使用File类用于获取和设置文件属性或DateTime与创建过程中,相关信息访问及文件的写入。如果您想要在多个文件上执行操作,请参阅Directory.GetFiles 或 DirectoryInfo.GetFiles

2、FileInfo 类 --转自msdn

提供用于创建、复制、删除、移动和打开文件的属性和实例方法,并且帮助创建 FileStream 对象。 此类不能被继承。

构造函数

名称 说明
FileInfo(String)

初始化作为文件路径的包装的 FileInfo 类的新实例。

属性

名称 说明 语法 
CreationTime

获取或设置当前文件或目录的创建时间。

(继承自 FileSystemInfo。)

 
Directory

获取父目录的实例。

public DirectoryInfo Directory { get; }表示此文件父目录的 DirectoryInfo 对象。
DirectoryName

获取表示目录的完整路径的字符串。

public string DirectoryName { get; }表示目录的完整路径的字符串。

Exists

获取指示文件是否存在的值。

(覆盖 FileSystemInfo.Exists。)

public override bool Exists { get; }如果该文件存在,则为 true;如果文件不存在或文件即是目录,则为 false
Extension

获取表示文件扩展名部分的字符串。

(继承自 FileSystemInfo。)

public string Extension { get; }包含 FileSystemInfo 扩展名的字符串。Extension 属性将返回 FileSystemInfo 扩展,包括句点 (.)。 例如,对于文件 c:\NewFile.txt,此属性返回".txt"
FullName

获取目录或文件的完整目录。

(继承自 FileSystemInfo。)

public virtual string FullName { get; }包含完整目录的字符串。例如,对于文件 c:\NewFile.txt,此属性返回"c:\NewFile.txt"。
Name
获取文件名。

(覆盖 FileSystemInfo.Name。)

 

常用方法:

名称 说明
AppendText()

创建一个 StreamWriter,它向 FileInfo 的此实例表示的文件追加文本。

CopyTo(String)

将现有文件复制到新文件,不允许覆盖现有文件。

Create()  创建文件。
OpenText()  创建使用从现有文本文件中读取的 UTF8 编码的 StreamReader

3、Directory 类--转自msdn

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

常用方法

名称 说明 备注
CreateDirectory(String)

在指定路径中创建所有目录和子目录,除非它们已经存在。

 
CreateDirectory(String,?DirectorySecurity)

在指定路径中创建所有目录(除非已存在),并应用指定的 Windows 安全性。

 
Delete(String)

从指定路径删除空目录。

 
Delete(String,?Boolean)

删除指定的目录,并删除该目录中的所有子目录和文件(如果表示)。

 
Exists(String)  确定给定路径是否引用磁盘上的现有目录。
如果 path 指向现有目录,则为 true

如果该目录不存在或者在尝试确定指定目

录是否存在时出错,则为 false

GetCurrentDirectory()  获取应用程序的当前工作目录。  包含当前工作目录的路径且不以反斜杠 (\) 结尾的字符串。

4、DirectoryInfo 类 --转自msdn

属性

名称 说明 语法
Exists

获取指示目录是否存在的值。(覆盖 FileSystemInfo.Exists。)

public override bool Exists { get; }如果目录存在,则为 true;否则为 false

Extension  获取表示文件扩展名部分的字符串。(继承自 FileSystemInfo。)  
FullName  获取目录的完整路径。(覆盖 FileSystemInfo.FullName。)  
Name  获取此 DirectoryInfo 实例的名称。(覆盖 FileSystemInfo.Name。)  
Parent  获取指定的子目录的父目录。  
Root  获取目录的根部分。  

方法

名称 说明 语法
Create()

创建目录。

 
Create(DirectorySecurity)

使用 DirectorySecurity 对象创建目录。

 
Delete()  如果此 DirectoryInfo 为空则将其删除。(覆盖 FileSystemInfo.Delete()。)  
Delete(Boolean)  删除 DirectoryInfo 的此实例,指定是否删除子目录和文件。  
GetFiles()  返回当前目录的文件列表。(FileInfo 类型的数组。)
di.GetFiles()
GetFiles(String)  返回当前目录中与给定的搜索模式匹配的文件列表。(FileInfo 类型的数组。)
di.GetFiles("*2*")
di.GetFiles("test?.txt")

综合应用的例子

 1 class FileOperate
 2     {
 3         public static void Main()
 4         {
 5             try
 6             {
 7                 FileOperate fo = new FileOperate();
 8                 string path = @"D:\MrSong1";    //正常路径
 9                 string illeglePath = @"D:\111>";    //含有非法字符
10                 string overLengthPath = @""+fo.GetLongPath();   //路径超长
11
12                 fo.DirectoryNomal(path);  //正常
13                 Console.WriteLine("创建路径:" + path);
14                 Directory.CreateDirectory(path);    //创建
15                 fo.DirectoryNomal(path);
16                 Console.WriteLine("删除路劲:" + path);
17                 Directory.Delete(path); //删除
18                 fo.DirectoryNomal(path);
19                 DirectoryInfo dirInfo = new DirectoryInfo(path);
20                 if (!dirInfo.Exists)
21                 {
22                     dirInfo.Create();   //创建路径
23                 }
24                 dirInfo.Delete();
25                 fo.DirectoryNomal(illeglePath); //报“路径中存在非法字符异常”,下面的方法不执行
26                 fo.DirectoryNomal(overLengthPath);  //修改illegalPath为正确路径后,执行此方法,报”指定路径名过长“
27             }
28             catch (Exception ex)
29             {
30                 Console.WriteLine(ex);
31             }
32             Console.ReadKey();
33         }
34
35         private void DirectoryNomal(string path)
36         {
37             if (Directory.Exists(path))
38             {
39                 Console.WriteLine("Directory类方法判断:存在路径");
40             }
41             else
42             {
43                 Console.WriteLine("Directory类方法判断:不存在" + path);
44             }
45             DirectoryInfo di = new DirectoryInfo(path);
46             if (di.Exists)
47             {
48                 Console.WriteLine("DirectoryInfo属性判断:存在路径" + path);
49             }
50             else
51             {
52                 Console.WriteLine("DirectoryInfo属性判断:不存在路径");
53             }
54         }
55
56         private string GetLongPath()
57         {
58             string path = "";
59             char[] Pattern = new char[] { ‘0‘, ‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘9‘, ‘A‘, ‘B‘, ‘C‘, ‘D‘, ‘E‘, ‘F‘, ‘G‘, ‘H‘, ‘I‘, ‘J‘, ‘K‘, ‘L‘, ‘M‘, ‘N‘, ‘O‘, ‘P‘, ‘Q‘, ‘R‘, ‘S‘, ‘T‘, ‘U‘, ‘V‘, ‘W‘, ‘X‘, ‘Y‘, ‘Z‘ };
60             System.Random random = new Random(~unchecked((int)DateTime.Now.Ticks));
61             int i=0;
62             int n = Pattern.Length;
63
64             while (i <= 257)
65             {
66                 int rnd = random.Next(0, n);
67                 path += Pattern[rnd];
68                 i++;
69             }
70             return path;
71         }
72     }

注意:

1、Exists是Directory类的方法,在DirectoryInfo中是属性。2、DirectoryInfo类初始化(构造函数)中会报异常,有非法字符串,超长,path为null,调用方没有权限错误。

原文地址:https://www.cnblogs.com/meng9527/p/9036583.html

时间: 2024-11-05 19:39:09

C# 操作文件类,文件夹存在判断,创建,文件内容读写。的相关文章

判断文件是否存在,不存在创建文件&amp;&amp;判断文件夹是否存在,不存在创建文件夹

1.判断文件是否存在,不存在创建文件 [java] view plaincopyprint? File file=new File("C:\\Users\\QPING\\Desktop\\JavaScript\\2.htm"); if(!file.exists()) { try { file.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace();

主库添加数据文件后,备库因为创建文件失败而停止数据同步

primary环境:11gR2 RAC+ASMstandby环境:本地单机 主库添加数据文件后,备库因为创建文件失败而停止数据同步. 1.查看主库环境的数据文件 SQL> select file#,status,name from v$datafile; FILE# STATUS NAME ---------- ------- -------------------------------------------- 1 SYSTEM +ABCE/test/datafile/system.293.

MFC下对文件及文件夹的操作(复制、剪切、删除、创建文件夹,写文件)

一.文件夹的创建 1 void CFileOperationDlg::OnButtonMakeFolder() 2 { 3 // TODO: Add your control notification handler code here 4 UpdateData(TRUE); 5 CFileFind m_sFileFind; 6 7 if (!m_sFileFind.FindFile(m_FolderName)) 8 { 9 CreateDirectory(m_FolderName,NULL);

File类和各种io类会不会自动创建文件

File类是不会自动为你生成文件的,它只是为你定位这么一个地方,倘若需要为这个位置上的这个Fiel类所指定的文件名新建一个文件就得用到File类的一个成员方法:public boolean createNewFile() throws IOException如果是建立临时文件则用的是:public static File createTempFile(String prefix, String suffix) throws IOException或着是public static File cre

Asp.Net 文件操作基类

using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.T

Java 判断文件夹、文件是否存在、否则创建文件夹

1.判断文件是否存在,不存在创建文件 File file=new File("C:\\Users\\QPING\\Desktop\\JavaScript\\2.htm"); if(!file.exists()) { try { file.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 2.判断文件夹是否存在,不存在创建文件夹 Fi

Java文件类

文件类:java.io.File 基本方法: exists():判断文件是否存在,返回true或false mkdir():创建文件夹目录(只能建一层) ---make Directory  创建成功返回true  创建失败返回false mkdirs():创建文件夹目录(建多层文件夹) createNewFile(): 创建文件 delete(): 删除文件 renameTo(File file): 对文件进行更名操作 getName: 获取文件名称 getPath: 获取文件路径 lengt

根据数字型样式或非数字型样式创建文件夹

2018-10-31 17:14:17  开始写 数字型 非数字型 1 import javax.swing.JFrame; 2 import javax.swing.JPanel; 3 import javax.swing.border.EmptyBorder; 4 import javax.swing.JLabel; 5 import javax.swing.JOptionPane; 6 7 import java.awt.Font; 8 import javax.swing.JTextFi

Java:文件类File的详解

File类的常用方法: 1.创建 boolean createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false.和输出流不一样,输出流对象一建立创建文件,而且文件已经存在会覆盖. boolean mkdir():创建一级目录 boolean mkdirs():创建多级目录 2.删除 boolean delete():删除失败,返回false void deleteOnExit():在程序退出时删除指定文件 3.判断 boolean canExecute():文

【JavaNIO的深入研究4】内存映射文件I/O,大文件读写操作,Java nio之MappedByteBuffer,高效文件/内存映射

内存映射文件能让你创建和修改那些因为太大而无法放入内存的文件.有了内存映射文件,你就可以认为文件已经全部读进了内存,然后把它当成一个非常大的数组来访问.这种解决办法能大大简化修改文件的代码.fileChannel.map(FileChannel.MapMode mode, long position, long size)将此通道的文件区域直接映射到内存中.注意,你必须指明,它是从文件的哪个位置开始映射的,映射的范围又有多大:也就是说,它还可以映射一个大文件的某个小片断. MappedByteB