36 struct BasicFileData {
46 BasicFileData& operator=(BasicFileData
const&);
47 BasicFileData(BasicFileData
const&);
63 struct FileTransferProgress {
74 FileTransferProgress& operator=(FileTransferProgress
const&);
75 FileTransferProgress(FileTransferProgress
const&);
76 FileTransferProgress();
82 virtual ::Core::Result
101 virtual ::Core::Result readFileData(
::Core::PathView, ::std::vector<uchar>&) = 0;
105 virtual ::Core::Result createOneDirectoryIfNotExisting(
::Core::PathView) = 0;
113 virtual ::Core::Result deleteDirectoryAndContentsRecursively(
::Core::PathView) = 0;
115 virtual ::Core::Result deleteDirectoryContentsRecursively(
::Core::PathView) = 0;
119 virtual ::Core::Result iterateOverDirectory(
121 ::Core::DirectoryIterationFlags,
127 virtual ::Core::Result
128 getDirectoryFilesAndSizes(::std::vector<::Core::FileSystem::BasicFileData>&,
::Core::PathView) = 0;
130 virtual ::Core::Result
133 virtual ::Core::Result getDirectoryFilesSizeRecursively(uint64&,
::Core::PathView) = 0;
135 virtual ::Core::Result getDirectoryFilesAllocatedSizeRecursively(uint64&, uint64&,
::Core::PathView) = 0;
145 virtual ::Core::Result getFileOrDirectorySize(
::Core::PathView, uint64*) = 0;
153 virtual ::Core::Result getLastModificationTime(
::Core::PathView, int64*) = 0;
161 virtual ::Core::Result copyFlatFile(
164 ::std::vector<::Core::ExcludedPath>
const&,
165 ::std::vector<::Core::ExcludedPath>
const&
170 virtual ::Core::PathBuffer<::Core::BasicStackString<char, 1024>> getUniqueFilePathForFile(
::Core::PathView) = 0;
172 virtual ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
175 virtual ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
176 createUniquePathFromSeed(
::Core::PathView, ::std::function<::std::string(
int)>) = 0;
178 virtual ::std::vector<::Core::PathBuffer<::std::string>> splitPathIntoFullPathSegments(
::Core::PathView) = 0;
180 virtual ::Core::Result readFileDataExt(
::Core::PathView, uint64, uint64, ::std::vector<uchar>&, uint64&) = 0;
182 virtual ::Core::Result
185 virtual ::Core::Result
190 virtual ::std::unique_ptr<::Core::FileSizePresetToken> presetFileInitialSize(
::Core::PathView, uint64) = 0;
192 virtual ::Core::Result _getDirectoriesAndFileSizesRecursively(
195 ::std::vector<::Core::FileSystem::BasicFileData>&
198 virtual ::Core::Result _copyDirectoryStructure(
205 virtual ::Core::Result _copyFilesWithLimit(
208 ::std::vector<::Core::FileSystem::BasicFileData>&,
215 virtual ::Core::Result _copyFlatFile(
218 ::std::vector<::Core::ExcludedPath>
const&,
219 ::std::vector<::Core::ExcludedPath>
const&
222 virtual ::std::optional<uint64> _checkFileInitialSize(
::Core::PathView) = 0;
230 MCNAPI static ::Core::FileSystem&
get();