English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
FileInfo 클래스는静态 File 클래스와 같은 기능을 제공하지만, 파일에서字节을 읽거나 쓰는 코드를 수동으로 작성하여 파일의 읽기와 쓰기를 제어할 수 있습니다./쓰기 작업이 더 많은 제어력을 가집니다.
속성 | 사용법 |
---|---|
Directory | 부모 디렉토리의 인스턴스를 가져옵니다. |
DirectoryName | 디렉토리의 전체 경로를 나타내는 문자열을 가져옵니다. |
Exists | 파일이 존재하는지 여부를 나타내는 값을 가져옵니다. |
Extension | 파일 확장자를 나타내는 문자열을 가져옵니다. |
FullName | 디렉토리나 파일의 전체 경로를 가져옵니다. |
IsReadOnly | 현재 파일이 읽기 전용인지 여부를 가져오거나 설정합니다. |
LastAccessTime | 현재 파일이나 디렉토리에 대해 마지막으로 접근한 시간을 가져오거나 설정합니다. |
LastWriteTime | 현재 파일이나 디렉토리에 대해 마지막으로 쓰여진 시간을 가져오거나 설정합니다. |
Length | 현재 파일의 크기를(바이트为单位) 가져옵니다. |
Name | 파일 이름을 가져옵니다. |
메서드 | 사용법 |
---|---|
AppendText | 文本을 FileInfo의 이 인스턴스가 표시하는 파일에 추가하는 StreamWriter를 생성합니다. |
CopyTo | 기존 파일을 새 파일로 복사하고, 기존 파일을 덮어쓰지 않습니다. |
Create | 파일을 생성합니다. |
CreateText | 새 텍스트 파일에 쓰기 위해 StreamWriter를 생성합니다. |
Decrypt | Encrypt 메서드를 사용하여 현재 계정으로 암호화된 파일을 해독합니다. |
Delete | 지정된 파일을 지웁니다. |
Encrypt | 파일을 암호화하여 암호화된 파일을 해독할 수 있는 계정만 파일을 해독할 수 있습니다. |
GetAccessControl | 지정된 파일의 접근 제어 목록(ACL) 항목을 포장한 FileSecurity 객체를 가져옵니다. |
MoveTo | 지정된 파일을 새 위치로 이동하고, 지정된 새 파일 이름 옵션을 제공합니다. |
Open | 지정된 FileMode에서 하나를 엽니다. |
OpenRead | 읽기 전용 FileStream을 생성합니다. |
OpenText | UTF로 생성된8인코딩된 StreamReader이 있으며, 이 인코딩기는 기존 텍스트 파일에서 읽을 수 있습니다. |
OpenWrite | 읽기 전용 FileStream을 생성합니다. |
Replace | 현재 FileInfo 객체로 설명된 파일을 지정된 파일의 내용으로 대체하고, 원래 파일을 지우고 대체 파일의 백업을 생성합니다. |
ToString | 문자열로 반환하는 방법을 보여줍니다 |
아래 예제에서 파일에서 바이트를 수동으로 읽고 UTF8인코딩을 문자열로 변환합니다:
예제: FileInfo 클래스를 사용하여 파일을 읽기
//为指定路径创建FileInfo对象 FileInfo fi = new FileInfo(@"D:\DummyFile.txt"); //打开文件进行读\写 FileStream fs = fi.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite); //FileStream의 길이와 같은 크기의 바이트 배열을 생성합니다 byte[] fileBytes = new byte[fs.Length]; //읽을 바이트 수를 확인하기 위해 계산기를 정의합니다. 각 바이트를 읽을 때 계산기를 감소시킵니다 int numBytesToRead = (int)fileBytes.Length; //읽은 바이트 수를 나타내는 계산기 int numBytesRead = 0; //FileStream에서 모든 바이트를 읽을 때까지 반복합니다 while (numBytesToRead > 0) { int n = fs.Read(fileBytes, numBytesRead, numBytesToRead); if (n == 0) break; numBytesRead +n = n; numBytesToRead -n = n; } //FileStream에서 모든 바이트를 읽은 후 UTF8인코딩을 문자열로 변환합니다 string filestring = Encoding.UTF8.GetString(fileBytes);
위 코드와 같이 FileStream에서 읽기 위해 많은 코드를 작성해야 합니다/문자열을 쓰면 됩니다. StreamReader와 StreamWriter를 사용하면 같은 읽기 작업을 쉽게 수행할 수 있습니다/쓰기 작업.
아래 예제에서 StreamReader가 파일에서 문자열을 읽는 방법을 쉽게 보여줍니다:
예제: StreamReader를 사용하여 파일을 읽기
//为指定路径创建FileInfo对象 FileInfo fi = new FileInfo(@"D:\DummyFile.txt"); //打开文件进行读\写 FileStream fs = fi.Open(FileMode.OpenOrCreate, FileAccess.Read, FileShare.Read); //FileStream 객체를 처리할 필요가 있는StreamReader 객체를 생성합니다 StreamReader sr = new StreamReader(fs); //ReadToEnd 메서드를 사용하여 파일에서 모든 내용을 읽습니다 string fileContent = sr.ReadToEnd(); //操作后关闭StreamReader对象 sr.Close(); fs.Close();
注意,fi.Open() 它具有三个参数:
第一个参数是FileMode,用于创建和打开文件(如果文件不存在);
第二个参数 FileAccess 表示读取操作;
第三个参数是在打开文件时与其他用户共享文件以供阅读。
下面的示例显示 StreamWriter 如何使将字符串写入文件变得更容易:
示例:使用StreamWriter将文本写入文件
//为指定路径创建FileInfo对象 FileInfo fi = new FileInfo(@"D:\DummyFile.txt"); //打开文件进行读\写 FileStream fs = fi.Open(FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read ); //创建StreamWriter对象以将字符串写入FileSream StreamWriter sw = new StreamWriter(fs); sw.WriteLine("streamwriter에서 다른 줄"); sw.Close();
不能同时对同一个 FileStream 对象执行读和写操作。如果您已经在读取文件,请创建一个单独的 FileStream 对象以写入同一文件,如下所示:
示例:StreamReader和StreamWriter
//为DummyFile.txt创建FileInfo对象 FileInfo fi = new FileInfo(@"D:\DummyFile.txt"); //打开DummyFile.txt进行读取操作 FileStream fsToRead = fi.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite , FileShare.ReadWrite); //打开DummyFile.txt进行写操作 FileStream fsToWrite = fi.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite); //获取StreamReader StreamReader sr = new StreamReader(fsToRead); //使用StreamReader对象读取所有文本 string fileContent = sr.ReadToEnd(); sr.Close(); //获取StreamWriter StreamWriter sw = new StreamWriter(fsToWrite); //StreamWriter로 글을 씁니다 sw.WriteLine("streamwriter에서 다른 줄"); sw.Close(); //모든 Stream 객체를 닫습니다 fsToRead.Close(); fsToWrite.Close();
따라서 FileInfo, StreamReader 및 StreamWriter 클래스를 사용하여 물리 파일에서 읽을 수 있습니다/내용을 입력하세요。