- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
- Hướng dẫn khóa file bằng nhiều process id, không cho xóa tập tin
- Hướng dẫn cách tạo Product Id cho ứng dụng phần mềm XXXXX-XXXXX-XXXXX-XXXXX
- [SQLSERVER] Hướng dẫn tạo script sql từ ứng dụng Sqlserver management Studio
Đổi tên file trong thư mục chỉ định với C#
Hôm nay mình xin hướng dẫn đổi tên file thành chuỗi mã hóa dạng md5 32 ký tự bằng C#. Ví dụ này sẽ đổi tên tất cả các file trong thư mục được chọn. Tùy mục đích sử dụng của các file mà mình không muốn người khác biết được quy tắc đặt tên của mình thì mình sẽ mã hóa theo dạng này.
Đầu tiên mình sẽ chọn 1 folder, sau đó lấy tất cả các file chứa trong folder đó (bao gồm cả các thư mục con), tách lấy tên và mã hóa tên theo định dạng md5 sau đó đổi tên file thành tên đã mã hóa.
Bài này mình có tham khảo bài viết của anh Cái Trí Minh https://laptrinhvb.net/bai-viet/chuyen-de-csharp/Ma-hoa-MD5-voi--Csharp-/43e4065edab328e7.html .
Bắt đầu thực hiện:
Mình sẽ tạo một solution C#, sau đó new một form như hình:
Nhấn F7 và copy hàm chuyển chuỗi ký tự thành chuỗi mã hóa MD5:
private String md5(string txt)
{
String str = "";
Byte[] buffer = System.Text.Encoding.UTF8.GetBytes(txt);
System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
buffer = md5.ComputeHash(buffer);
foreach (Byte b in buffer)
{
str += b.ToString("X2");
}
return str;
}
Code cho sự kiện click vào button Duyệt:
string[] path_folder ; //tạo một mảng chứa danh sách đường dẫn các file khi chọn thư mục
private void btn_duyet_Click(object sender, EventArgs e)
{
path_folder =null;
FolderBrowserDialog folder_selected = new FolderBrowserDialog(); //dùng để duyệt chọn 1 folder
if (folder_selected.ShowDialog()==DialogResult.OK)
{
path_folder = Directory.GetFiles(folder_selected.SelectedPath,"*.*",SearchOption.AllDirectories); //thực hiện quét tất cả các tệp tin có trong thư mục chọn, bao gồm cả thư mục con
txt_thumuc.Text = folder_selected.SelectedPath;
if (path_folder.Length!=0)
{
gridControl1.DataSource = path_folder;
}
else
{
XtraMessageBox.Show("Thư mục rỗng !", "Hệ thống", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
Code cho sự kiện click vào button Đổi tên:
private void btn_doiten_Click(object sender, EventArgs e)
{
if (path_folder != null)
{
var source = new List(); //tạo một danh sách để chứa các file sau khi đổi tên
foreach (var file in path_folder)
{
string file_path, file_name, file_extension;
file_path = Path.GetDirectoryName(file); //lấy thư mục của file từ đường dẫn file
file_name = Path.GetFileNameWithoutExtension(file); //lấy tên file không bao gồm phần đuôi kiểu file
file_extension = Path.GetExtension(file); //lấy phần đuôi của file vd: .pdf,.png
File.Move(file, file_path + "" + md5(file_name) + file_extension); //đổi tên file đó thành tên file mới đã được mã hóa
source.Add(file_path + "" + md5(file_name) + file_extension);
}
//source.ToArray();
gridControl1.DataSource = source;
}
}
Hoàn tất, chạy thử để xem kết quả. Lưu ý là các file sau khi đổi rồi sẽ không thể đổi tên lại. Hãy cân nhắc thử trên một thư mục không quan trọng, ví dụ kho phim FBI Warning chẳng hạn ! =))
Chúc thành công !