2023-03-06 15:30:39 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "Common/File/VFS/VFS.h"
|
|
|
|
|
#include "Common/File/FileUtil.h"
|
|
|
|
|
#include "Common/File/Path.h"
|
|
|
|
|
|
|
|
|
|
class DirectoryReader : public VFSBackend {
|
|
|
|
|
public:
|
|
|
|
|
explicit DirectoryReader(const Path &path);
|
|
|
|
|
// use delete[] on the returned value.
|
|
|
|
|
uint8_t *ReadFile(const char *path, size_t *size) override;
|
2023-03-06 17:30:13 +01:00
|
|
|
|
2023-03-06 22:46:05 +01:00
|
|
|
VFSFileReference *GetFile(const char *path) override;
|
|
|
|
|
bool GetFileInfo(VFSFileReference *vfsReference, File::FileInfo *fileInfo) override;
|
|
|
|
|
void ReleaseFile(VFSFileReference *vfsReference) override;
|
2023-03-06 17:30:13 +01:00
|
|
|
|
2023-03-08 09:11:25 +01:00
|
|
|
VFSOpenFile *OpenFileForRead(VFSFileReference *vfsReference, size_t *size) override;
|
2023-03-06 22:46:05 +01:00
|
|
|
void Rewind(VFSOpenFile *vfsOpenFile) override;
|
|
|
|
|
size_t Read(VFSOpenFile *vfsOpenFile, void *buffer, size_t length) override;
|
|
|
|
|
void CloseFile(VFSOpenFile *vfsOpenFile) override;
|
2023-03-06 17:30:13 +01:00
|
|
|
|
2023-03-06 15:30:39 +01:00
|
|
|
bool GetFileListing(const char *path, std::vector<File::FileInfo> *listing, const char *filter) override;
|
|
|
|
|
bool GetFileInfo(const char *path, File::FileInfo *info) override;
|
|
|
|
|
std::string toString() const override {
|
|
|
|
|
return path_.ToString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
Path path_;
|
|
|
|
|
};
|