Tạo một file batch chạy lệnh cmd bằng C# để dọn dẹp thư mục
Mình có một đoạn code như sau:
private void btDonDepSolution_Click(object sender, EventArgs e)
{
string path = fbdDuongDan.SelectedPath;
if (path[path.Length - 1] != ') path = path + "\";
StreamWriter Progress = new StreamWriter("Progress.bat");
Progress.WriteLine(@"Câu lệnh cmd 1");
Progress.WriteLine(@"Câu lệnh cmd 2");
...
Progress.WriteLine(@"Câu lệnh cmd z");
Progress.Close();
Process.Start("Progress.bat");
while
(File.Exists("Progress.bat"))
try
{
File.Delete("Progress.bat");
}
catch
{
}
}
Mình có một thư mục tên là C:Solution
Trong thư mục Solution có các thư mục Project1, Project2, Project3…, Projectn
Mỗi thư mục Project1,2,3… có một thư mục obj và một thư mục bin
Khi click vào btDonDepSolution thì xoá tất cả các thư mục obj và bin biết rằng chúng không rỗng.
z với n là các số khác nhau, các thư mục “Project” có thể có tên rất khác nhau và fbdDuongDan.SelectedPath==“C:Solution”
Cái đoạn sinh câu lệnh cmd ở giữa StreamWriter Progress = new StreamWriter(“Progress.bat”); và Process.Start(“Progress.bat”); mình ko biết viết thế nào do không thạo cmd. Ai chỉ cho mình vụ này với
Dùng luôn System.IO của C# mà xoá. Khỏi cmd làm gì cho nó nhì nhằng ra.
Cái đó mình làm được rồi
Mình nghĩ là cmd có lệnh
del <file> /s /q
thì việc xoá file bằng file .bat sẽ nhanh hơn là dùngforeach
trong C# khi cần xoá số lượng lớn (cỡ 2000 files *.user đặt trong đủ các subfolder với nhiều cấp độ khác nhau chẳng hạn)Đấy chỉ là bạn nghĩ thôi
À, thế tiện trong post này mình hỏi luôn, mọi người đánh giá lối viết code này là sáng sủa hay “tối sủa”…
Tùy trường hợp. Trong trường hợp file/dir quá nhiều thì batch luôn nhanh hơn. Cả Unix và DOS đều vậy.