Voltray Engine Docs
Loading...
Searching...
No Matches
FileOperations.h
Go to the documentation of this file.
1#pragma once
2#include <filesystem>
3#include <string>
4#include <vector>
5
11namespace Editor
12{
13 namespace Assets
14 {
19 struct FileInfo
20 {
21 std::filesystem::path path;
22 std::string name;
23 std::string extension;
24 std::uintmax_t size;
25 std::filesystem::file_time_type lastModified;
29 std::string mimeType;
30 std::string fileCategory;
31 };
32
38 {
39 bool success;
40 std::string errorMessage;
41 std::vector<std::filesystem::path> copiedFiles;
42 std::vector<std::filesystem::path> failedFiles;
43 };
44
50 {
51 public:
57 static FileInfo GetFileInfo(const std::filesystem::path &path);
58
66 static CopyResult CopyFiles(const std::vector<std::filesystem::path> &sources,
67 const std::filesystem::path &destination,
68 bool overwrite = false);
69
77 static CopyResult MoveFiles(const std::vector<std::filesystem::path> &sources,
78 const std::filesystem::path &destination,
79 bool overwrite = false);
80
86 static bool CreateDirectoryRecursive(const std::filesystem::path &path);
87
94 static size_t DeleteFiles(const std::vector<std::filesystem::path> &paths, bool moveToTrash = true);
95
101 static std::filesystem::path GenerateUniqueFilename(const std::filesystem::path &basePath);
102
110 static std::vector<std::filesystem::path> FindFiles(const std::filesystem::path &directory,
111 const std::string &pattern,
112 bool recursive = false);
113
119 static std::string FormatFileSize(std::uintmax_t sizeBytes);
120
126 static std::string FormatFileTime(const std::filesystem::file_time_type &fileTime);
127
134 static bool HasPermission(const std::filesystem::path &path, std::filesystem::perms permission);
135
142 static bool SetPermissions(const std::filesystem::path &path, std::filesystem::perms permissions);
143
149 static bool IsValidFilename(const std::string &filename);
150
156 static std::string SanitizeFilename(const std::string &filename);
157
163 static std::string GetMimeType(const std::string &extension);
164
170 static std::string GetFileCategory(const std::string &extension);
171
177 static std::uintmax_t GetDirectorySize(const std::filesystem::path &directory);
178
184 static bool OpenWithDefaultApplication(const std::filesystem::path &path);
185
191 static bool ShowInFileExplorer(const std::filesystem::path &path);
192
198 static std::uintmax_t GetAvailableSpace(const std::filesystem::path &path);
199
205 static bool IsNetworkPath(const std::filesystem::path &path);
206
212 static std::filesystem::path CreateBackup(const std::filesystem::path &filePath);
213
220 static bool CompareFiles(const std::filesystem::path &file1, const std::filesystem::path &file2);
221
222 private:
230 static bool CopySingleFile(const std::filesystem::path &source,
231 const std::filesystem::path &destination,
232 bool overwrite);
233
241 static CopyResult CopyDirectoryRecursive(const std::filesystem::path &source,
242 const std::filesystem::path &destination,
243 bool overwrite);
244
250 static bool MoveToRecycleBin(const std::filesystem::path &path);
251
258 static bool MatchPattern(const std::string &filename, const std::string &pattern);
259 };
260 }
261}
A panel component responsible for managing and displaying asset resources.
Advanced file operations for asset management.
Definition FileOperations.h:50
static size_t DeleteFiles(const std::vector< std::filesystem::path > &paths, bool moveToTrash=true)
Delete files and directories safely.
Definition FileOperations.cpp:165
static bool CreateDirectoryRecursive(const std::filesystem::path &path)
Create directory with intermediate directories.
Definition FileOperations.cpp:159
static bool ShowInFileExplorer(const std::filesystem::path &path)
Show file in system file explorer.
Definition FileOperations.cpp:511
static std::string GetFileCategory(const std::string &extension)
Get file category for extension.
Definition FileOperations.cpp:438
static bool OpenWithDefaultApplication(const std::filesystem::path &path)
Open file with system default application.
Definition FileOperations.cpp:499
static CopyResult MoveFiles(const std::vector< std::filesystem::path > &sources, const std::filesystem::path &destination, bool overwrite=false)
Move files with progress tracking.
Definition FileOperations.cpp:134
static std::uintmax_t GetAvailableSpace(const std::filesystem::path &path)
Get available disk space for path.
Definition FileOperations.cpp:523
static std::string FormatFileSize(std::uintmax_t sizeBytes)
Get file size in human-readable format.
Definition FileOperations.cpp:268
static std::string GetMimeType(const std::string &extension)
Get MIME type for file extension.
Definition FileOperations.cpp:374
static CopyResult CopyFiles(const std::vector< std::filesystem::path > &sources, const std::filesystem::path &destination, bool overwrite=false)
Copy files with progress tracking.
Definition FileOperations.cpp:83
static FileInfo GetFileInfo(const std::filesystem::path &path)
Get detailed file information.
Definition FileOperations.cpp:25
static std::string FormatFileTime(const std::filesystem::file_time_type &fileTime)
Get file modification time as string.
Definition FileOperations.cpp:295
static std::vector< std::filesystem::path > FindFiles(const std::filesystem::path &directory, const std::string &pattern, bool recursive=false)
Search for files matching pattern.
Definition FileOperations.cpp:217
static bool SetPermissions(const std::filesystem::path &path, std::filesystem::perms permissions)
Set file permissions.
Definition FileOperations.cpp:314
static bool IsValidFilename(const std::string &filename)
Validate filename for current OS.
Definition FileOperations.cpp:321
static std::string SanitizeFilename(const std::string &filename)
Sanitize filename for current OS.
Definition FileOperations.cpp:351
static std::filesystem::path GenerateUniqueFilename(const std::filesystem::path &basePath)
Generate unique filename if file already exists.
Definition FileOperations.cpp:192
static bool CompareFiles(const std::filesystem::path &file1, const std::filesystem::path &file2)
Compare two files for equality.
Definition FileOperations.cpp:563
static bool HasPermission(const std::filesystem::path &path, std::filesystem::perms permission)
Check if file has specific permissions.
Definition FileOperations.cpp:307
static bool IsNetworkPath(const std::filesystem::path &path)
Check if path is on a network drive.
Definition FileOperations.cpp:529
static std::uintmax_t GetDirectorySize(const std::filesystem::path &directory)
Calculate directory size recursively.
Definition FileOperations.cpp:483
static std::filesystem::path CreateBackup(const std::filesystem::path &filePath)
Backup file with timestamp.
Definition FileOperations.cpp:541
Definition AssetsPanel.cpp:7
Result of a copy operation.
Definition FileOperations.h:38
bool success
Definition FileOperations.h:39
std::string errorMessage
Definition FileOperations.h:40
std::vector< std::filesystem::path > copiedFiles
Definition FileOperations.h:41
std::vector< std::filesystem::path > failedFiles
Definition FileOperations.h:42
Extended file information.
Definition FileOperations.h:20
std::string name
Definition FileOperations.h:22
std::filesystem::path path
Definition FileOperations.h:21
bool isHidden
Definition FileOperations.h:28
std::filesystem::file_time_type lastModified
Definition FileOperations.h:25
std::uintmax_t size
Definition FileOperations.h:24
std::string fileCategory
Definition FileOperations.h:30
bool isDirectory
Definition FileOperations.h:26
std::string extension
Definition FileOperations.h:23
std::string mimeType
Definition FileOperations.h:29
bool isReadOnly
Definition FileOperations.h:27