Tôi đang sử dụng lệnh gọi API Windows FindFirstFile và FindNextFile để tìm kiếm tệp phù hợp với một chuỗi ký tự đại diện nhất định trong một thư mục. Ví dụ, tôi có thể muốn tìm tất cả các tệp XML trong một thư mục và vì vậy tôi tìm kiếm bằng cách sử dụng mẫu "* .xml".Có cách nào thay thế cho API FindFirstFile/FindNextFile của Windows không tìm kiếm tên tệp ngắn không?
Tôi đang gặp sự cố nếu tôi đang tìm kiếm tiện ích 3 chữ cái và tiện ích mở rộng của tệp bắt đầu bằng tiện ích 3 chữ cái đó, tiện ích mở rộng sẽ được tìm kiếm, ngay cả khi tiện ích có chứa nhiều ký tự hơn sau 3. Ví dụ, nếu tập tin của tôi được đặt tên somelongname.xmlaaaa, điều này sẽ được chọn bởi tìm kiếm "* .xml". Tên ngắn của tệp đó là somelo ~ 1.xml, khớp với chuỗi ký tự đại diện của tôi.
tôi có thể làm ký tự đại diện riêng của tôi phù hợp để có được xung quanh vấn đề này, nhưng có lẽ một API của Windows sẽ có thể thực hiện điều này một cách hiệu quả hơn tôi có thể, và mã của tôi sẽ đơn giản hơn. Theo như tôi có thể nói không có cách nào để buộc các chức năng này bỏ qua các tên ngắn. Có bất kỳ API API nào hiển thị với chức năng này không?
Thú vị. Tôi cần hỗ trợ Windows XP, vì vậy có lẽ tôi không thể dựa vào chức năng này. Thật không may, thực tế là điều này đã được thêm vào API này trong Windows 7 có thể chỉ ra rằng nó không tồn tại trong bất kỳ API khác trước đó. –
Có vẻ như vậy. Xin lỗi đã thất bại bạn :) Và cảm ơn bạn đã chỉnh sửa, @Rob – JoeFish
Hóa ra tài liệu này rất gây hiểu nhầm. Tìm kiếm sẽ vẫn tìm thấy các tệp khớp với tên ngắn, ngay cả khi bạn chuyển vào FindExInfoBasic. Nó sẽ không bao gồm tên tệp ngắn trong thành viên cAlternateFileName của cấu trúc WIN32_FIND_DATA. –