Tạo Thư Mục và Ghi Dữ Liệu vào Tệp Text trong C#
- Tạo Thư Mục và Ghi Dữ Liệu
string duongDanCoBan = AppDomain.CurrentDomain.BaseDirectory + "\\LuuTruDuLieu\\";
// Kiểm tra xem thư mục đã tồn tại chưa, nếu chưa thì tạo mới
if (!Directory.Exists(duongDanCoBan))
{
Directory.CreateDirectory(duongDanCoBan);
}
string duongDanTep = duongDanCoBan + DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt";
using (StreamWriter ghiTep = new StreamWriter(@duongDanTep, false))
{
ghiTep.WriteLine(noiDungCanGhi);
}
- Xóa Nội Dung Tệp Text
public void XoaNoiDungTep(string duongDanTep)
{
string duongDanToanBo = System.AppDomain.CurrentDomain.BaseDirectory + @"DuLieu\" + duongDanTep;
FileStream luongTep = File.Open(duongDanToanBo, FileMode.OpenOrCreate, FileAccess.Write);
luongTep.Seek(0, SeekOrigin.Begin);
luongTep.SetLength(0);
luongTep.Close();
}
- Thêm Nội Dung vào Tệp Text
public void LuuVaoTep(string noiDung, string tenTep, bool ghiThem) {
string duongDanToanBo = System.AppDomain.CurrentDomain.BaseDirectory + @"DuLieu\" + tenTep;
StreamWriter ghiTep = new StreamWriter(duongDanToanBo, ghiThem); //ghiThem: true để thêm vào, false để ghi đè
ghiTep.WriteLine(noiDung);
ghiTep.Close();
}
- Lấy Đường Dẫn Ứng Dụng và Tạo Tệp
Các phương thức lấy đường dẫn trong C#:
// Lấy thư mục cơ sở của ứng dụng.
string thuMucCoBan = System.AppDomain.CurrentDomain.BaseDirectory;
// Lấy đường dẫn đầy đủ của module.
string duongDanModule = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
// Lấy và thiết lập thư mục hiện tại (thư mục khởi chạy tiến trình).
string thuMucHienTai = System.Environment.CurrentDirectory;
// Lấy thư mục làm việc hiện tại của ứng dụng.
string thuMucLamViec = System.IO.Directory.GetCurrentDirectory();
// Lấy và thiết lập tên thư mục chứa ứng dụng.
string thuMucUngDung = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
// Lấy đường dẫn tệp thực thi khởi chạy ứng dụng.
string duongDanKhoiDong = System.Windows.Forms.Application.StartupPath;
// Lấy đường dẫn tệp thực thi khởi chạy ứng dụng và tên tệp.
string duongDanThucThi = System.Windows.Forms.Application.ExecutablePath;
Tạo đường dẫn mới và ghi dữ liệu:
// Ghép đường dẫn mới
string duongDanMoi = System.Windows.Forms.Application.StartupPath + "\\TaiLieu\\";
// Kiểm tra thư mục tồn tại, nếu không thì tạo
if(!Directory.Exists(duongDanMoi))
{
Directory.CreateDirectory(duongDanMoi);
}
// Tạo tệp txt và lưu chuỗi JSON
string duongDanTepMoi = duongDanMoi + DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt";
byte[] data = null;
data = Encoding.UTF8.GetBytes(duLieuJson.ToString()); // duLieuJson là đối tượng JSON
FileStream luongTepMoi = new FileStream(duongDanTepMoi, FileMode.Create);
luongTepMoi.Write(data, 0, data.Length);
luongTepMoi.Close();
- Ghi Chuỗi vào Tệp Text
public void ghiChuoiVaoTep(string noiDung)
{
// Lấy thư mục cơ sở của ứng dụng và tạo đường dẫn mới
string duongDanCoBan = AppDomain.CurrentDomain.BaseDirectory + "LuuTruDuLieu\\";
// Kiểm tra và tạo thư mục nếu chưa tồn tại
if (!Directory.Exists(duongDanCoBan))
{
Directory.CreateDirectory(duongDanCoBan);
}
// Tạo đường dẫn tệp với ngày tháng hiện tại
string duongDanTep = duongDanCoBan + DateTime.Now.ToString("yyyyMMdd") + ".txt";
// Ghi nội dung vào tệp (false: ghi đè, true: thêm vào)
using (StreamWriter ghiTep = new StreamWriter(@duongDanTep, false))
{
ghiTep.WriteLine(noiDung);
}
}
Giải thích lớp StreamWriter:
Lớp StreamWriter triển khai TextWriter, cho phép ghi ký tự vào một luồng với một mã hóa cụ thể. Ví dụ:
StreamWriter ghiTep = new StreamWriter(duongDan, themVao);
Trong đó:
- duongDan: Đường dẫn đầy đủ đến tệp cần ghi.
- themVao: Xác định liệu dữ liệu có được thêm vào tệp không. Nếu tệp tồn tại và themVao là false, tệp sẽ được ghi đè. Nếu tệp tồn tại và themVao là true, dữ liệu sẽ được thêm vào tệp. Nếu tệp không tồn tại, tệp mới sẽ được tạo.