English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C#提供了以下用于文件系统的类。它们可用于访问目录,访问文件,打开文件以进行读取或写入,创建新文件或将现有文件从一个位置移动到另一位置等。
类名称 | 用法 |
---|---|
File | File是一个静态类,提供不同的功能,例如复制,创建,移动,删除,打开以进行读取或写入,加密或解密,检查文件是否存在,在文件内容中添加行或文本,获取上次访问时间等。 |
FileInfo | FileInfo类提供与静态File类相同的功能。通过手动编写用于从文件读取或写入字节的代码,您可以更好地控制对文件的读/写操作。 |
Directory | 目录是一个静态类,提供创建,移动,删除和访问子目录的功能。 |
DirectoryInfo | DirectoryInfo提供了用于创建,移动,删除和访问子目录的实例方法。 |
Path | Path是一个静态类,提供一些功能,例如检索文件扩展名,更改文件扩展名,检索绝对物理路径以及其他与路径相关的功能。 |
C# 包含静态 File 类,用于在物理文件系统上执行 i/o 操作。静态文件类包括各种实用方法,可以与任何类型的物理文件(如二进制文件、文本文件等)进行交互。
使用此静态File类对物理文件执行一些快速操作。由于性能原因,不建议将File类同时用于多个文件的多个操作。在这种情况下使用FileInfo类。
方法 | 用法 |
---|---|
AppendAllLines | 将行追加到文件,然后关闭该文件。如果指定的文件不存在,则此方法将创建一个文件,将指定的行写入该文件,然后关闭该文件。 |
AppendAllText | 打开一个文件,将指定的字符串附加到该文件,然后关闭该文件。如果该文件不存在,则此方法将创建一个文件,将指定的字符串写入该文件,然后关闭该文件。 |
AppendText | 创建一个StreamWriter,它将UTF-8编码的文本附加到现有文件,或者如果指定的文件不存在,则附加到新文件。 |
Copy | 将现有文件复制到新文件。不允许覆盖同名文件。 |
Create | 在指定路径中创建或覆盖文件。 |
CreateText | 创建或打开用于写入UTF-8编码文本的文件。 |
Decrypt | Encrypt 메서드를 사용하여 현재 계정으로 암호화된 파일을 해독합니다. |
Delete | 지정된 파일을 삭제합니다. |
Encrypt | 파일을 암호화하여 암호화된 파일을 해독할 수 있는 계정만 파일을 해독할 수 있습니다. |
Exists | 지정된 파일이 존재하는지 확인합니다. |
GetAccessControl | FileSecurity 객체를 얻습니다. 이 객체는 지정된 파일의 접근 제어 목록(ACL) 항목을 포함합니다. |
Move | 지정된 파일을 새 위치로 이동하고 지정된 새 파일 이름을 제공합니다. |
Open | 읽기 접근 권한/지정된 접근 권한의 경로에서 FileStream을 열기 |
ReadAllBytes | 이진 파일을 열고 파일의 내용을 바이트 배열에 읽고 파일을 닫습니다. |
ReadAllLines | 텍스트 파일을 열고 파일의 모든 행을 읽고 파일을 닫습니다. |
ReadAllText | 텍스트 파일을 열고 파일의 모든 행을 읽고 파일을 닫습니다. |
Replace | 지정된 파일의 내용을 다른 파일의 내용으로 대체하고 원래 파일을 삭제하고 대체 파일의 백업을 생성합니다. |
WriteAllBytes | 새 파일을 생성하고 지정된 바이트 배열을 파일에 쓰고 파일을 닫습니다. 목표 파일이 이미 존재하면 덮어쓰습니다. |
WriteAllLines | 새 파일을 생성하고 문자열 셋을 파일에 쓰고 파일을 닫습니다. |
WriteAllText | 새 파일을 생성하고 지정된 문자열을 파일에 쓰고 파일을 닫습니다. 목표 파일이 이미 존재하면 덮어쓰습니다. |
AppendAllLines() 메서드를 사용하여 다중 행 텍스트를 지정된 파일에 추가하면 다음과 같습니다.
string dummyLines = "This is first line."; + Environment.NewLine + "This is second line." + Environment.NewLine + "This is third line."; //DummyFile.txt 파일을 열고 행을 추가합니다. 파일이 존재하지 않으면 생성하고 열립니다. File.AppendAllLines(@"C:\DummyFile.txt", dummyLines.Split(Environment.NewLine.ToCharArray()).ToList<string>());
File.AppendAllText() 메서드를 사용하여 문자열을 단일 행 코드의 파일에 추가하면 다음과 같습니다.
//DummyFile.txt 파일을 열고 텍스트를 추가합니다. 파일이 존재하지 않으면 생성하고 열립니다. File.AppendAllText(@"C:\ DummyFile.txt", "This is File testing");
사용File.WriteAllText()텍스트를 파일에 쓰는 방법입니다. 텍스트를 추가하지 않고 기존 텍스트를 덮어쓰는 점을 주의하세요.
예제: 기존 텍스트를 덮어쓰기
//DummyFile.txt를 열고 텍스트를 작성합니다. 파일이 존재하지 않으면 생성하고 열립니다. File.WriteAllText(@"C:\DummyFile.txt", "This is dummy text");
아래 예제는 정적 File 클래스를 사용하여 다양한 작업을 수행하는 방법을 보여줍니다.
//특정 위치에 파일이 존재하는지 확인합니다 bool isFileExists = File.Exists(@"C:\ DummyFile.txt"); // 가짜를 반환합니다 //DummyFile.txt를 DummyFileNew.txt로 새 파일로 복사합니다 File.Copy(@"C:\DummyFile.txt", @"D:\NewDummyFile.txt"); //파일에 대해 마지막으로 접근한 시간을 가져옵니다 파일에 대해 마지막으로 접근한 시간을 가져옵니다 //파일에 대해 마지막으로 쓴 시간을 가져옵니다 DateTime lastWriteTime = File.GetLastWriteTime(@"C:\DummyFile.txt"); // 파일을 새 위치로 이동합니다 File.Move(@"C:\DummyFile.txt", @"D:\DummyFile.txt"); //파일을 열고 바이트를 읽기 위해 FileStream를 반환합니다 FileStream fs = File.Open(@"D:\DummyFile.txt", FileMode.OpenOrCreate); //파일을 열고 문자열을 읽기 위해 StreamReader를 반환합니다 StreamReader sr = File.OpenText(@"D:\DummyFile.txt"); //파일을 지우기 File.Delete(@"C:\DummyFile.txt");
따라서, 정적 File 클래스를 사용하면 물리 파일을 쉽게 처리할 수 있습니다. 그러나, 더 많은 유연성을 원한다면 FileInfo 클래스를 사용할 수 있습니다. 마찬가지로, 정적 Directory 클래스를 사용하여 물리 디렉토리를 처리할 수 있습니다.
File은 정적 클래스로 물리 파일에서 읽기\쓰기에编码량이 적습니다.
정적 File 클래스는 물리 파일을 생성, 읽기\쓰기, 복사, 이동, 삭제 등의 기능을 제공합니다.
정적 Directory 클래스는 물리 디렉토리를 생성, 복사, 이동, 삭제 등의 기능을 제공하며编码량이 적습니다.
FileInfo와 DirectoryInfo 클래스는 정적 File과 Directory 클래스와 동일한 기능을 제공합니다.