Làm Việc Với File Cơ Bản Lưu Và đọc File Text Trong C# C Sharp
Có thể bạn quan tâm
- Đọc thông tin các ổ đĩa
- Lớp Path
- Làm việc với lớp File
- Làm việc với lớp Directory
Phần này tìm hiểu về hệ thống File, thư mục, ổ đĩa làm việc với .NET bằng C#. Như đọc thông tin ổ đĩa, đóng - mở file, copy file, xóa file, ghi dữ liệu ra file ...
Đọc thông tin ổ đĩa - DriveInfo
Thư viện .NET cung cấp lớp DriveInfo tại namespace System.IO giúp đọc thông tin các ổ đĩa có trong hệ thống. Phương thức DriveInfo.GetDrives() trả về mảng gồm các đối tượng DriveInfo, mỗi đối tượng chứa thông tin về một ổ đĩa. Có thể tham khảo các thuộc tính:
Các thuộc tính của lớp DriveInfo
Thuộc tính | Ý nghĩa |
---|---|
IsReady | true ổ đĩa ở trạng thái sẵn sàng (hoạt động) - ví dụ ổ đĩa CD nếu không có đĩa thì không sẵn sàng false |
DriveType | kiểu ổ đĩa (System.IO.DriveType) : CDRom, Fixed, Network, NoRootDirectory, Ram, Removable, Unknown |
VolumeLabel | Nhãn đĩa |
DriveFormat | Chuỗi cho biết định dạng đĩa: NTFS, FAT32, FAT, devfs ... |
AvailableFreeSpace | Số byte có hiệu lực còn trống (theo hạn ngạch người dùng) |
TotalFreeSpace | Số byte còn trống |
TotalSize | Tổng số byte trên đĩa |
Khi áp dụng chạy:
GetDriveInfomation.GetDrivesInfo();Kết quả in ra là các thông tin về các ổ đĩa trên máy:
Drive / Drive type: Fixed Volume label: / File system: apfs Available space to current user: 222470746112 bytes Total available space: 224261296128 bytes Total size of drive: 499455598592 bytes Drive /dev Drive type: Ram Volume label: /dev File system: devfs Available space to current user: 0 bytes Total available space: 0 bytes Total size of drive: 193536 bytesLớp Path - Hỗ trợ làm việc với đường dẫn
Để hỗ trợ quản lý, tạo các đường dẫn đến file, thư mục - nhất là hỗ trợ cross-platform thì lớp tĩnh System.IO.Path chứa các phương thức (tĩnh) với mục đích đó.
Phương thức | Ý nghĩa |
---|---|
Path.DirectorySeparatorChar | Thuộc tính chứa ký tự phân cách đường dẫn thư mục (\ trên Windows, / trên *nix) |
Path.PathSeparator | Thuộc tính chứa ký tự phân chia thư mục trong biến môi trường |
Combine | Kết hợp các chuỗi thành dường dẫn var path = Path.Combine("home", "ReadMe.txt"); // "home/ReadMe.txt" |
ChangeExtension | Thay đổi phần mở rộng của đường dẫn var path = Path.ChangeExtension("/home/abc/ReadMe.txt", "md"); // "/home/abc/ReadMe.md" |
GetDirectoryName | Lấy đường dẫn đến file (thư mục) var path = Path.GetDirectoryName("/home/abc/zyz/ReadMe.txt"); // "/home/abc/zyz" |
GetExtension | Lấy phần mở rộng var path = Path.GetExtension("/home/ReadMe.txt"); // ".txt" |
GetFileName | Lấy tên file var path = Path.GetFileName("/home/abc/ReadMe.txt"); // "ReadMe.txt" |
GetFileNameWithoutExtension | Lấy tên file var path = Path.GetFileNameWithoutExtension("/home/ReadMe.txt"); // "ReadMe" |
GetFullPath | Lấy đường dẫn đầy đủ - từ đường dẫn tương đối var path = Path.GetFullPath("ReadMe.txt"); |
GetPathRoot | Lấy gốc của đường dẫn |
GetRandomFileName | Tạo tên file ngẫu nhiên var path = Path.GetRandomFileName(); |
GetTempFileName | Tạo file duy nhất, rỗng var path = Path.GetTempFileName(); |
Để lấy đường dẫn đến một số thư mục đặc biệt của hệ thống, có thể dùng phương thức Environment.GetFolderPath. Ví dụ, lấy thư mục MyDocument
var path_mydoc = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);Làm việc với lớp File
Lớp System.IO.File cung cấp cho bạn cách thức đơn giản để làm việc với các tệp. Nó có nhiều phương thức cho những mục đích khác nhau File class, như copy, xóa, di chuyển, lưu text vào file, đọc nội dung file, kiểm tra sự tồn tại, tra cứu thông tin về file ...
File.WriteAllText
Hàm này tạo ra file mới (nếu đã có file bị ghi đè), ghi vào nó một nội dung text, rồi đóng file luôn. Ví dụ, lưu vào file test.txt một nội dung, file đó ở đường dẫn đến thư mục MyDocument của hệ thống.
static void testWriteAllText () { var filename = "test.txt"; string contentfile = "Xin chào! xuanthulab.net"; // Lấy thư mục Document của User trên hệ thống var directory_mydoc = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); var fullpath = Path.Combine(directory_mydoc, filename); File.WriteAllText (filename, contentfile); Console.WriteLine ($"File lưu tại {directory_mydoc}{Path.DirectorySeparatorChar}{filename}"); }Với WriteAllText file luôn được tạo mới (ghi đè), nếu file đó đã tồn tại - bạn muốn nối thêm nội dung vào nội dung có sẵn thì hãy dùng đến AppendAllText. Ví dụ sau, nếu file đã tồn tại thì nối thêm nội dung, nếu chưa tồn tại thì tạo mới.
static void testAppendAllText() { var filename = "test.txt"; string contentfile = "\nXin chào! xuanthulab.net - " + DateTime.Now.ToString (); var directory_mydoc = Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments); var fullpath = Path.Combine (directory_mydoc, filename); if (File.Exists (fullpath)) { // File đã tồn tại - nối thêm nội dung File.AppendAllText (fullpath, contentfile); } else { // tạo mới vì chưa tồn tại file File.WriteAllText (fullpath, contentfile); } // Đọc nội dung File Console.WriteLine (fullpath); string s = File.ReadAllText (fullpath); Console.WriteLine (s); }File.ReadAllText
Hàm này thì đọc nội dung file.
string s = File.ReadAllText(fullpath); Console.Write(s);Ngoài ra bạn cũng có thể sử dụng các phương thức
- File.Create(filename) tạo file
- File.Delete(filename) xóa file
- File.Exists(filename) kiểm tra file có tồn tại
- File.Copy(path_src, path_des) copy file
- File.Move(path_src, path_des) di chuyển file
Làm việc với lớp Directory
Lớp System.IO.Directory cung cấp các phương thức chuyên tương tác với các thư mục.
Phương thức | Ý nghĩa |
---|---|
Exists(path) | Kiểm tra xem thư mục có tồn tại (true) hay không (false) |
CreateDirectory(path) | Tạo thư mục, trả về đối tượng System.IO.DirectoryInfo chứa thông tin thư mục. |
Delete(path) | Xóa thư mục. |
GetFiles(path) | Lấy các file trong thư mục. |
GetDirectories(path) | Lấy các thư mục trong thư mục. |
Move(src, des) | Di chuyển thư mục. |
Ví dụ lấy tất cả các thư mục, file trong một thư mục
var directory_mydoc = Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments); String[] files = System.IO.Directory.GetFiles(directory_mydoc); String[] directories = System.IO.Directory.GetDirectories(directory_mydoc); foreach (var file in files) { Console.WriteLine(file); } foreach(var directory in directories) { Console.WriteLine(directory); }Ví dụ đệ quy liệt kê tất cả các file, thư mục con trong một thư mục
static void ListFileDirectory(string path) { String[] directories = System.IO.Directory.GetDirectories(path); String[] files = System.IO.Directory.GetFiles(path); foreach (var file in files) { Console.WriteLine(file); } foreach (var directory in directories) { Console.WriteLine(directory); ListFileDirectory(directory); // Đệ quy } }Chạy thử
var directory_mydoc = Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments); ListFileDirectory(directory_mydoc);Tham khảo mã nguồn CS016_FilesDirectories(git) hoặc tải về ex016
Mục lục bài viết Đọc thông tin các ổ đĩaLớp PathLàm việc với lớp FileLàm việc với lớp Directory ĐĂNG KÝ KÊNH, XEM CÁC VIDEO TRÊN XUANTHULAB Đăng ký nhận bài viết mớiTừ khóa » đọc File Text
-
File TXT Là Gì? Cách Mở Và Chuyển File TXT Sang PDF, XLSX, DOC ...
-
File .txt Là Gì? Cách Mở File .txt
-
File TXT Là Gì Và Những điều Chưa Biết Về Tệp Văn Bản Này
-
Đọc Dữ Liệu Từ File Text Bằng Visual C# - Hỗ Trợ Dự án Ghi Log
-
Chuyển đổi TXT Sang DOC (WORD) (Trực Tuyến Miễn Phí) - Convertio
-
[Bài Tập Lập Trình C Số 14] Cách đọc File Text - YouTube
-
Tổng Hợp Cách đọc File Text Trong Java - Deft Blog
-
Text Viewer - Txt File Viewer Trên App Store - Apple
-
Đọc Ghi File Text Trong Python - Yêu Lập Trình
-
Xin App đọc File Txt - Tinhte
-
Đọc Và Ghi File Text Trong C++ - Toan Vnaking's Blog/site
-
Đọc File Trong C (fgetc, Fgets, Fscanf, Sscanf) - Lập Trình Căn Bả
-
Đọc Nội Dung File Text Trong VBA - VietTuts
-
Bài 70. Đọc Ghi File Trong C - Lập Trình Không Khó