Thứ tự đọc mặc định cho phương thức Directory.EnumerateFiles
là gì? Nó có nhất quán không?Directory.EnumerateFiles read order (C#)
Theo kinh nghiệm của tôi cho đến nay, có vẻ như vào ngày tệp được tạo nhưng tôi chưa thể tìm thấy xác nhận về điều này.
Lý do tôi hỏi là vì một phần của chương trình tôi đang làm việc trên các tệp tải nhị phân từ các thư mục vào các đối tượng được tải vào các mảng. Các đối tượng này tham chiếu lẫn nhau bằng các mảng chỉ mục, có nghĩa là thứ tự chúng được nạp vào các mảng của chúng cần duy trì tính nhất quán (để tránh các chỉ số dịch chuyển).
Khi tôi ở đây, tôi có một câu hỏi nhỏ khác. Khi các tập tin bị xóa, nó rõ ràng là thay đổi chỉ số của các tập tin được nạp vào mảng bất kể tôi làm gì. Bất kỳ đề xuất nào để tránh sự cố này? Tôi đã tránh sử dụng từ điển cho đến bây giờ do lo lắng về việc lưu trữ (thay vì không lưu trữ các mảng của các phím văn bản nếu tôi có thể tránh được nó), nhưng nếu đó là cách tiếp cận khả thi duy nhất, tôi có thể phải thực hiện nó.
EDIT: Sau những lời khuyên tuyệt vời từ câu trả lời của bạn, tôi đã refactored đến một cách tiếp cận từ điển bằng cách sử dụng tên của các tập tin. Tác động hiệu suất đã được khá không đáng kể và khả năng đọc và bảo trì được cải thiện rất nhiều vì vậy nó làm việc ra khá tốt.
Tại sao không chỉ giữ tham chiếu thay vì chỉ mục? Bạn sẽ không phải lo lắng về các chỉ mục bị xáo trộn nếu bạn đã làm điều này. – casperOne
Do cách thức hoạt động của tệp tuần tự. Nếu tôi đã lưu các tập tin có chứa tài liệu tham khảo thông qua serialization và sau đó tải các tập tin, tôi sẽ được tải toàn bộ cây đối tượng mỗi khi kết quả sao chép hàng loạt. Ví dụ, nếu xe tham chiếu lốp xe và tài liệu tham khảo lốp xe và cả hai đều được lưu và sau đó nạp, tôi sẽ có 2 trường hợp trùng lặp của lốp. – Djentleman
Lấy từ [MSDN] (http://msdn.microsoft.com/en-us/library/07wt70x2.aspx), về 'GetFiles' (về cơ bản gọi là' EnumerateFiles'): * Thứ tự của tên tệp được trả về là không được bảo đảm; sử dụng phương thức Sort() nếu cần một thứ tự sắp xếp cụ thể. * Tôi đề nghị bạn, như tài liệu nói, để sử dụng phương pháp phân loại của riêng bạn. – Mir