Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 11 kết quả

Đề tài: Kiểm tra file trong C#

  1. #1
    Ngày gia nhập
    02 2015
    Bài viết
    4

    Lightbulb Kiểm tra file trong C#

    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

    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;
            }
    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.

    - - - 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.

  2. #2
    Ngày gia nhập
    08 2014
    Nơi ở
    USA
    Bài viết
    623

    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

  3. #3
    Ngày gia nhập
    02 2015
    Bài viết
    4

    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ử.

    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;
                    }
                }
    - - - Nội dung đã được cập nhật ngày 06-02-2015 lúc 12:26 AM - - -

    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 :(

  4. #4
    Ngày gia nhập
    08 2014
    Nơi ở
    USA
    Bài viết
    623

    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

  5. #5
    Ngày gia nhập
    02 2015
    Bài viết
    4

    Trích dẫn Nguyên bản được gửi bởi VNFox Xem bài viết
    Nói thật chứ mình không biết bạn đang muốn làm gì luôn
    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.

  6. #6
    Ngày gia nhập
    01 2013
    Bài viết
    1,479

    Mặc định Kiểm tra file trong C#

    Trích dẫn Nguyên bản được gửi bởi VNFox Xem bài viết
    Nói thật chứ mình không biết bạn đang muốn làm gì luôn
    Chỉ cho vanilla chứ ko cho xài mod đây mà (cleo là lib để chạy mod)
    Mấy cái chống hack khó làm lớm.

  7. #7
    Ngày gia nhập
    02 2015
    Bài viết
    4

    Trích dẫn Nguyên bản được gửi bởi prog10 Xem bài viết
    Chỉ cho vanilla chứ ko cho xài mod đây mà (cleo là lib để chạy mod)
    Mấy cái chống hack khó làm lớm.
    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;
                }

  8. #8
    Ngày gia nhập
    08 2014
    Nơi ở
    USA
    Bài viết
    623

    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

  9. #9
    Ngày gia nhập
    06 2013
    Bài viết
    140

    Bạn định nghĩa filterList và lấy các files có trong directory:

    Code:
            string[] filterList = { "a.txt", "b.txt" };
    	string[] files = Directory.GetFiles(@"C:\");
    Rồi sử dụng Intersect operator. Nếu count của files lớn hơn kết quả intersect thì false.

    Code:
    IEnumerable<string> intersect = files.Intersect(filterList);
    if (files.Count > intersect.Count) {
       return false;
    }
    hoặc:

    Code:
    var filteredFileSet = files.Where(item => filterList.Contains(item));
    if (files.Count > filteredFileSet.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.

  10. #10
    Ngày gia nhập
    04 2010
    Nơi ở
    Hà Nội
    Bài viết
    100

    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ẽ|--

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn