- [C#] Viết ứng dụng Auto Fill list Textbox from clipboard Winform
- [TOOL] Chia sẻ phần mềm thay đổi thông tin cấu hình máy tính
- [C#] Hướng dẫn Export dữ liệu ra file Microsoft Word Template
- [C#] Chia sẻ source code tool kiểm tra domain website
- [C#] Hướng dẫn tạo file PDF sử dụng thư viện QuestPDF
- [C#] Hướng dẫn tạo ứng dụng dock windows giống Taskbar
- [C#] Chia sẻ source code sử dụng Object Listview trên Winform
- [VB.NET] Chia sẻ source code quản lý thu chi mô hình 3 lớp Winform
- [DATABASE] Xóa lịch sử danh sách đăng nhập tài khoản trên SMSS Sqlserver Management Studio
- [C#] Sử dụng FolderBrowserDialog Vista trên Winform
- [DEVEXPRESS] Chia sẻ tool Winform UI Templates Early Access Preview (EAP)
- [C#] Chia sẻ source code Spin Content (Trộn nội dung văn bản theo từ đồng nghĩa) trên Winform
- [VB.NET] Chia sẻ source code lịch âm dương và hẹn lịch nhắc việc
- [C#] Hướng dẫn đọc thông số thiết bị Thiết bị kiểm tra Pin (HIOKI BATTERY HiTESTER BT3562)
- [VB.NET] Hướng dẫn giải captcha sử dụng dịch vụ AZCaptcha API trên winform
- [C#] Hướng dẫn chứng thực đăng nhập ứng dụng bằng vân tay (Finger Print) trên máy tính
- [C#] Color Thief cách xuất màu sắc thiết kế từ hình ảnh
- [C#] Cách tạo bản quyền và cho phép dùng thử ứng dụng Winform
- [C#] Hướng dẫn sử dụng trình duyệt web Chrome convert HTML sang tập tin file PDF
- [C#] Kết nôi điện thoại Android, IOS với App Winform via Bluetooth
Đổ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 !