37 struct BasicFileData {
47 BasicFileData& operator=(BasicFileData
const&);
48 BasicFileData(BasicFileData
const&);
64 struct FileTransferProgress {
75 FileTransferProgress& operator=(FileTransferProgress
const&);
76 FileTransferProgress(FileTransferProgress
const&);
77 FileTransferProgress();
83 virtual ::Core::Result openFile(
87 ::Core::FileBufferingMode bufferingMode
96 virtual ::Core::Result getFileSize(
::Core::PathView filePath, uint64* pFileSize) = 0;
106 virtual ::Core::Result readFileData(
::Core::PathView filePath, ::std::vector<uchar>& data) = 0;
108 virtual ::Bedrock::Result<::std::string> readFile(
::Core::PathView filePath) = 0;
110 virtual ::Bedrock::Result<void> writeFile(
::Core::PathView filePath, ::std::string_view data) = 0;
112 virtual ::Core::Result createOneDirectory(
::Core::PathView directoryPath) = 0;
114 virtual ::Core::Result createOneDirectoryIfNotExisting(
::Core::PathView dirName) = 0;
116 virtual ::Core::Result createDirectoryRecursively(
::Core::PathView dirName) = 0;
122 virtual ::Core::Result deleteDirectoryAndContentsRecursively(
::Core::PathView dirName) = 0;
124 virtual ::Core::Result deleteDirectoryContentsRecursively(
::Core::PathView directoryName) = 0;
128 virtual ::Core::Result iterateOverDirectory(
130 ::Core::DirectoryIterationFlags flags,
134 virtual ::Core::Result
137 virtual ::Core::Result getDirectoryFilesAndSizes(
138 ::std::vector<::Core::FileSystem::BasicFileData>& filesOut,
142 virtual ::Core::Result getDirectoryFilesRecursively(
147 virtual ::Core::Result getDirectoryFilesSizeRecursively(uint64& totalSize,
::Core::PathView directoryPath) = 0;
149 virtual ::Core::Result getDirectoryFilesAllocatedSizeRecursively(
151 uint64& totalAllocatedSize,
161 virtual bool fileOrDirectoryExists(
::Core::PathView fileOrDirectoryName) = 0;
163 virtual ::Core::Result getFileOrDirectorySize(
::Core::PathView path, uint64* pFileSizeOut) = 0;
167 virtual ::Core::Result removeIgnoredThrottlePath(
::Core::PathView path) = 0;
171 virtual ::Core::Result getLastModificationTime(
::Core::PathView filePath, int64* pLastModificationTime) = 0;
173 virtual ::Core::Result
176 virtual ::Core::Result
181 virtual ::Core::Result copyFlatFile(
184 ::std::vector<::Core::ExcludedPath>
const& excludedDirectories,
185 ::std::vector<::Core::ExcludedPath>
const& excludedFiles
188 virtual ::Core::Result createDirectoryForFile(
::Core::PathView filePath) = 0;
190 virtual ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
193 virtual ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
196 virtual ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
197 createUniquePathFromSeed(
::Core::PathView basePath, ::std::function<::std::string(
int)> seedGenerator) = 0;
199 virtual ::std::vector<::Core::PathBuffer<::std::string>> splitPathIntoFullPathSegments(
::Core::PathView path) = 0;
201 virtual ::Core::Result readFileDataExt(
205 ::std::vector<uchar>&
buffer,
209 virtual ::Core::Result cleanPath_deprecated(
214 virtual ::Core::Result cleanPathSeparators_deprecated(
221 virtual ::std::unique_ptr<::Core::FileSizePresetToken>
224 virtual ::Core::Result _getDirectoriesAndFileSizesRecursively(
227 ::std::vector<::Core::FileSystem::BasicFileData>& filesOut
230 virtual ::Core::Result _copyDirectoryStructure(
237 virtual ::Core::Result _copyFilesWithLimit(
240 ::std::vector<::Core::FileSystem::BasicFileData>& files,
241 uint64& currentFileBytesWritten,
242 uint64
const transactionLimit,
248 virtual ::Core::Result _copyFlatFile(
251 ::std::vector<::Core::ExcludedPath>
const& excludedDirectories,
252 ::std::vector<::Core::ExcludedPath>
const& excludedFiles
255 virtual ::std::optional<uint64> _checkFileInitialSize(
::Core::PathView path) = 0;
263 MCNAPI static ::Core::FileSystem&
get();