2012-12-02 43 views
6

Tôi cần thư viện hệ thống tệp đa nền tảng nhẹ để phát triển trò chơi. Tôi muốn chuyển các trò chơi của mình trên Windows, Linux và Mac.Có thư viện hệ thống tập tin đa nền tảng nhẹ C++ nào không?

Theo như tôi biết, việc sử dụng dirent.h hoạt động trên cả ba nền tảng. Tuy nhiên, tôi muốn biết nếu một thư viện đó là đơn giản để sử dụng tồn tại - sử dụng trực tiếp dirent đã gây nhầm lẫn cho tôi và tôi đã không nhận được bất cứ nơi nào.

Tôi cũng đã thử Boost, nhưng tôi không thích thực tế là nó không phải là nhẹ và nó đã cho tôi rắc rối trên các cổng Unix của trò chơi của tôi.

Tính năng tôi cần là:

  • Đệ quy đọc cây thư mục
  • Nhận tất cả các file trong một thư mục
  • Nhận tất cả các thư mục con trong một thư mục
+0

Bạn đang hỏi về thư viện cung cấp truy cập dễ dàng hơn để hệ thống tập tin hiện có HOẶC về thư viện mà thực hiện một hệ thống tập tin (container)? –

+0

@ EugeneMayevski'EldoSCorp Tôi hỏi về một thư viện giúp tôi lấy các thư mục/tệp hiện có trong ổ cứng. Ví dụ, tôi muốn nhận tất cả các tệp .png trong "C:/MyGame/Data/Images" mà không gặp nhiều rắc rối. –

+0

Bạn đã kiểm tra khung công tác GUI của mình chưa (bạn đang viết một trò chơi, phải không?)? Đôi khi họ có xu hướng bao gồm các công cụ bổ sung như api hệ thống tập tin. –

Trả lời

0

tôi đã tạo ra tôi thư viện hệ thống tệp riêng (được thử nghiệm trên Windows và Linux, cả với GCC và Clang).

Bạn có thể tìm thấy nó trong thư viện SSVUtils: https://github.com/SuperV1234/SSVUtils

SSVUtils không có người phụ thuộc bên ngoài.

sử dụng Ví dụ:

log("Getting all page.json files", "loadPages"); 

string pagesPath("Json/Pages/"); 
vector<string> pageJsonPaths{getScan<Mode::Recurse, Type::File, Pick::ByName>(pagesPath, "page.json")}; 
Các vấn đề liên quan