Tôi muốn tạo nhật ký cho các hành động differenct. Tôi tạo một tệp mới mỗi ngày với ngày dưới dạng tên tệp. Bây giờ, nếu thư mục không tồn tại, tôi muốn hệ thống tạo thư mục cho tôi. Tôi đã tìm kiếm chủ đề này và tất cả các câu trả lời đều đến cùng một điều: sử dụng Directory.CreateDirectory(FilePath);
. Tuy nhiên điều này dường như không hoạt động. Có thể thiếu một cái gì đó hiển nhiên.Tạo thư mục nếu không tồn tại
Dưới đây là các mã:
public class ElderlyHomeLog : ILog
{
private const string FilePath = "/Logs/WZCLogs/";
public void MakeLog(string text)
{
if (!Directory.Exists(FilePath))
{
Directory.CreateDirectory(FilePath);
}
string logFile = DateTime.Now.ToString("ddMMyyyy") + ".txt";
if (!File.Exists(HostingEnvironment.ApplicationPhysicalPath + FilePath + logFile))
{
FileStream f = File.Create(HostingEnvironment.ApplicationPhysicalPath + FilePath + logFile);
f.Close();
}
using (StreamWriter sw = new StreamWriter(HostingEnvironment.ApplicationPhysicalPath + FilePath + logFile, true))
{
sw.WriteLine(text);
sw.Close();
}
}
}
Thông báo lỗi:
Một ngoại lệ của loại 'System.IO.DirectoryNotFoundException' xảy ra trong mscorlib.dll nhưng không được xử lý theo mã người dùng
Thông tin bổ sung: Không thể tìm thấy một phần của đường dẫn 'C: \ Users \ *** \ Source \ Repos \ Project \ ProjectName \ Nhật ký \ WZCLogs \ 31032016.txt'.
Thông báo lỗi hoặc mô tả? –
Bạn đã thử cung cấp cho nó một đường dẫn tuyệt đối cho thư mục được tạo chưa? Ngoài ra, nếu bạn sử dụng 'Path.Combine' để kết hợp các đường dẫn thì bạn sẽ không phải lo lắng về các ký tự phân cách thư mục. –
biến FilePath chưa hoàn thành? –