private bool validateFiles()
{
// Check kho^ng co' B
if (!File.Exists("B.exe"))
{
Message Box ....
return false;
}
if(File.Exists("C.exe"))
{
MessageBox.Show("<!> Lỗi.", "Lỗi");
return false;
}
return true;
}
Hy vọng đây là những gì bạn muốn
Em chào các bác, em mới học lập trình C#, hiện tại em đang thử làm một file kiểm tra những File mà em muốn cho phép người dùng sử dụng, còn lại những file khác sẽ tự động báo lỗi mà không biết làm cách nào.
Như là trong thư mục A có file B và file C, em muốn check nếu như có File B hoặc không có file B, thì sẽ không báo lỗi, còn nếu như trong trường hợp có cả File C thì sẽ báo lỗi bắt phải xóa file C đi để tiếp tục hoặc bất kỳ file khác trong thư mục mà em không muốn cho phép người dùng sử dụng thì sẽ báo lỗi tương tự file C còn riêng những file như file B sẽ được chấp nhận và không báo lỗi.
Code em làm như thế này
Em mới chỉ tìm ra được cách check file có sẵn trong thư mục đó nhưng không biết làm function như trên thế nào, mong các bác giúp em. Em sử dụng Project Windows Application. Em xin cảm ơn các bác trước.Code:private bool checkFiles() { if (File.Exists("B.exe") == false) { if(File.Exists("C.exe") == true) { MessageBox.Show("<!> Lỗi.", "Lỗi"); return false; } } return true; }
- - - Nội dung đã được cập nhật ngày 05-02-2015 lúc 11:02 PM - - -
Dạng như là lập một list danh sách những file được phép sử dụng còn lại tất cả những file khác không có tên trong danh sách sẽ bị loại trừ và báo lỗi ý các bác.
private bool validateFiles()
{
// Check kho^ng co' B
if (!File.Exists("B.exe"))
{
Message Box ....
return false;
}
if(File.Exists("C.exe"))
{
MessageBox.Show("<!> Lỗi.", "Lỗi");
return false;
}
return true;
}
Hy vọng đây là những gì bạn muốn
VNFox là ai?www.vnfox.com
Cafe cùng VNFox @ fb.me/vnfoxcafe
Dạ không bác, nếu như đặt tên file thì đổi tên file "CẤM" sẽ không check được ạ. Vì em làm game, nên em thử làm 1 cái Launcher check file mà em cho phép sử dụng, để đăng nhập vào máy chủ, còn những file không cho phép (Mấy file hack), thì sẽ không vào game được. Em làm dạng này bác xem hộ em full code coi sao, em thấy nó không hoạt động, vì ngôn ngữ game em làm khá giống với C# nên em cũng làm thử.
- - - Nội dung đã được cập nhật ngày 06-02-2015 lúc 12:26 AM - - -Code:private bool checkFiles() { if (File.Exists("samp.exe") == false) { MessageBox.Show("Không tìm thấy thư mục game. Bạn hãy đưa laucher vào thư mục game Grand Theft Auto - San Andreas đã được cài đặt SAMP để khởi chạy Laucher.", "Lỗi"); return false; } if (File.Exists("cleo.asi")) { if (File.Exists("cleo/FileSystemOperations.cleo") == true && File.Exists("cleo/FileSystemOperations.cleo") == false) { return true; } else { MessageBox.Show("<!> Hê thống nhận thấy bạn đang sử dụng phần mềm thứ 3 không hợp lệ (CLEO).\n<!> Hãy xóa các file đó hoặc re-install game.", "Lỗi"); return false; } }
Có ai giúp em với, em làm nãy giờ đều không được như mong muốn :(. Nó chỉ check những file có tên trong danh sách mà em đang muốn nó kiểm tra những file k có tên trong danh sách được phép sử dụng :(
Nói thật chứ mình không biết bạn đang muốn làm gì luôn
VNFox là ai?www.vnfox.com
Cafe cùng VNFox @ fb.me/vnfoxcafe
E nói có vẻ khó hiểu chút vì e cũng chưa biết về C# nên k biết mô tả thế nào bác ạ. E muốn làm dạng lên 1 danh sách những File được phép sử dụng khi bật ứng dụng, còn lại những file khác với những tên khác sẽ báo lỗi ý bác, vì những file này đều nằm trong 1 thư mục là "cleo" nên em nghĩ chắc có cách để làm điều này.
Hiện tại e đang làm dạng check theo tên file hack mà e biết, nhưng cách này không hiệu quả nếu như người chơi đổi tên file hack sẽ thành công cốc, do vậy em mới muốn tìm cách để giới hạn người chơi sử dụng cleo bằng những cleo mình cho phép mới được sử dụng ở trong Launcher mà chưa tìm ra cách bác ạ.
- - - Nội dung đã được cập nhật ngày 06-02-2015 lúc 03:08 AM - - -
Em thử làm thế này nhưng check không hoạt động các bác giúp em với
Code:if (File.Exists("cleo.asi") == true || File.Exists("cleo.asi") == false)// Để check file cho phép sử dụng có hoặc không có vẫn sẽ tiếp tục trò chơi được { return true; } else // và không áp dụng đối với những tên không nằm trong danh sách sẽ báo lỗi như dưới và close game. { MessageBox.Show("<!> Hê thống nhận thấy bạn đang sử dụng phần mềm thứ 3 không hợp lệ.\n<!> Hãy xóa các file đó hoặc re-install game.", "Lỗi"); return false; }
Thật sự mình muốn giúp bạn ... mà cái logic giống tiếng khmer tiếng tàu, khó hiểu quá
VNFox là ai?www.vnfox.com
Cafe cùng VNFox @ fb.me/vnfoxcafe
Bạn định nghĩa filterList và lấy các files có trong directory:
Rồi sử dụng Intersect operator. Nếu count của files lớn hơn kết quả intersect thì false.Code:string[] filterList = { "a.txt", "b.txt" }; string[] files = Directory.GetFiles(@"C:\");
hoặc:Code:IEnumerable<string> intersect = files.Intersect(filterList); if (files.Count > intersect.Count) { return false; }
Code snippet trên chưa trắc nghiệm. Bạn có thể cần convert array sang list, nếu cần.Code:var filteredFileSet = files.Where(item => filterList.Contains(item)); if (files.Count > filteredFileSet.Count) { return false; }
mình nghĩ bạn Filter luôn file từ khi openfiledialog chỉ cho những file bạn muốn hiển thị thôi...
--|Hãy Chú Ý Lắng Nghe, Bởi Vì Cơ Hội Đến Với Chúng Ta Bằng Tiếng Gõ Rất Khẽ|--