OROCHI
 
Loading...
Searching...
No Matches
GxFile.h
Go to the documentation of this file.
1//===========================================================================
10//===========================================================================
11#pragma once
12
13GX_CORE_NAMESPACE_BEGIN()
14
15//===========================================================================
17//===========================================================================
19{
20 //-----------------------------------------------------------
22 //-----------------------------------------------------------
24public:
25 // RTTI宣言
26 GX_RTTI_CLASS(GxFileInformation, GxClassBase)
27
28public:
31 {
32 ATTRIBUTE_NOTHING = 0,
33 ATTRIBUTE_DIRECTORY = (1 << 0),
34 ATTRIBUTE_ARCHIVE = (1 << 1),
35 ATTRIBUTE_READONLY = (1 << 2),
36 ATTRIBUTE_HIDDEN = (1 << 3),
37 ATTRIBUTE_SYSTEM = (1 << 4),
38 ATTRIBUTE_NORMAL = (1 << 5),
39
40 ATTRIBUTE_NUM = 6
41 };
42
43 // friend宣言
44 friend class GxFile;
45#if defined(_PS5)
46private:
48 static constexpr u32 DIRECTORY_ENTRY_BUFFER_SIZE = GxMath::VALUE_4K;
49#endif //_PS5
50
52 //-----------------------------------------------------------
54 //-----------------------------------------------------------
56public:
60 ~GxFileInformation(void) override { findClose(); }
61
63 GxFileInformation(const GxFileInformation& fileInformation);
64
66 //-----------------------------------------------------------
68 //-----------------------------------------------------------
70public:
72 b32 operator == (const GxFileInformation& information) const { return (information.getName().compare(this->getName()) == 0); }
74 b32 operator != (const GxFileInformation& information) const { return (information.getName().compare(this->getName()) != 0); }
75
77 //-----------------------------------------------------------
79 //-----------------------------------------------------------
81public:
83 constexpr u32 getAttribute(void) const { return _attribute; }
85 GX_FORCE_INLINE b32 isDirectory(void) const { return (_attribute & ATTRIBUTE_DIRECTORY); }
87 constexpr u64 getLastWriteTime(void) const { return _lastWriteTime; }
89 GX_FORCE_INLINE const GxString& getLastWriteTimeString(void) const { return _lastWriteTimeString; }
91 GX_FORCE_INLINE const GxString& getName(void) const { return _filename; }
93 constexpr u64 getSize(void) const { return _size; }
94
95#if !defined(_NX64)
97 static u64 getWindowsTimeFromUnixTime(time_t unixTime);
99 static time_t getUnixTimeFromWindowsTime(u64 windowsTime);
100#endif //_NX64
101
103 void setInformation(GX_CSTR filename, u64 size, u64 lastWriteTime, u32 attribute);
104
105private:
107 void setInformation(GX_CSTR path, const GxNativeFileEntry& findData);
108
110 //-----------------------------------------------------------
112 //-----------------------------------------------------------
114private:
116 b32 findFirst(GX_CSTR path);
118 b32 findNext(void);
120 void findClose(void);
121
123 //-----------------------------------------------------------
125 //-----------------------------------------------------------
127private:
128 GxNativeFindHandle _findHandle;
129#if defined(_PS4) || defined(_PS5)
130 GxNativeFindBuffer _findBuffer;
131#endif // _PS4 || _PS5
132#if defined(_PS5)
133 u32 _findBufferIndex;
134#endif // _PS5
135#if defined(_WINDOWS) || defined(_XBOX_XS)
136#if GX_DEVELOP
137 GX_HANDLE _debugHandle;
138#endif // GX_DEVELOP
139#endif // _WINDOWS || _XBOX_XS
140#if defined(_NX64) || defined(_PS5)
141 GxString _findPath;
142#endif // _NX64
143 u64 _size;
144 GxString _filename;
145 u64 _lastWriteTime;
146 GxString _lastWriteTimeString;
147 u32 _attribute;
148 GxString _attributeString;
149
151};
152
153//===========================================================================
155//===========================================================================
156class GxFile : public GxClassBase
157{
158 //-----------------------------------------------------------
160 //-----------------------------------------------------------
162public:
163 GX_RTTI_CLASS(GxFile, GxClassBase)
164 // GxClassBase継承クラス用禁止宣言
166
167 // friend宣言
168 friend class GxSysFile;
169
170public:
172#if defined(_PS4) || defined(_PS5)
173 static constexpr u32 FILE_PATH_MAX = GxMath::VALUE_1K;
174#elif defined(_WINDOWS) || defined(_XBOX_XS)
175 static constexpr u32 FILE_PATH_MAX = MAX_PATH;
176#elif defined(_NX64)
177 static constexpr u32 FILE_PATH_MAX = 260;
178#endif // _NX64
179
181 static constexpr u32 SECTOR_SIZE_MAX = GxMath::VALUE_2K;
182
184 enum class MODE
185 {
186 READ = 1,
187 WRITE,
188 READWRITE,
189 TEMPORARY
190 };
191
193 enum class PROCESS_TYPE
194 {
195 SYNC = 0,
196 ASYNC
197 };
198
200 enum class SEEK_TYPE
201 {
202 BEGIN = 0,
203 CURRENT,
204 END,
205 MAX
206 };
207
209 enum class STATE
210 {
211 INITIALIZED = 0,
212 OPENED
213 };
214
216 enum class ASYNC_STATE
217 {
218 NONE = 0,
219 PROGRESS,
220 COMPLETE
221 };
222
224 enum class ASYNC_ERROR
225 {
226 CANCEL = -2,
227 INVALID = -1,
228 NONE = 0
229 };
230
232 typedef void (*FILE_ASYNC_READ_USER_CALLBACK)(void* pUser, GxFile& file, u32 size);
233
235 //-----------------------------------------------------------
237 //-----------------------------------------------------------
239public:
241 GxFile(void);
243 ~GxFile(void) override;
244
246 //-----------------------------------------------------------
248 //-----------------------------------------------------------
250public:
252 b32 open(GX_CSTR filename, MODE mode, PROCESS_TYPE type = PROCESS_TYPE::SYNC);
254 void close(void);
256 u32 read(void* pDst, u32 size);
258 u32 write(const void* pSrc, u32 size);
260 u32 seek(s32 offset, SEEK_TYPE seekType = SEEK_TYPE::BEGIN);
262 void flush(void);
264 b32 setLastWriteTime(u64 time);
265
266
268 b32 readAsync(void* pDst, u32 size, FILE_ASYNC_READ_USER_CALLBACK userCallback = nullptr, void* pUser = nullptr);
269
271 static b32 find(GxFileInformation& fileInfo, GX_CSTR path = nullptr);
273 static b32 move(GX_CSTR srcPath, GX_CSTR dstPath);
275 static b32 copy(GX_CSTR srcPath, GX_CSTR dstPath);
277 static b32 remove(GX_CSTR path);
279 static b32 createDirectory(GX_CSTR path);
281 static b32 createDirectoryEx(GX_CSTR path, b32 isRecursive = false);
283 static b32 removeDirectory(GX_CSTR path);
285 static b32 isExist(GX_CSTR path);
287 static b32 isDirectory(GX_CSTR path);
289 static u64 getLastWriteTime(GX_CSTR path);
290
292 GX_FORCE_INLINE static b32 move(const GxString& src, const GxString& dst) { return move(src.getString(), dst.getString()); }
294 GX_FORCE_INLINE static b32 copy(const GxString& src, const GxString& dst) { return copy(src.getString(), dst.getString()); }
296 GX_FORCE_INLINE static b32 remove(const GxString& path) { return remove(path.getString()); }
298 GX_FORCE_INLINE static b32 createDirectory(const GxString& path) { return createDirectory(path.getString()); }
300 GX_FORCE_INLINE static b32 createDirectoryEx(const GxString& path) { return createDirectoryEx(path.getString()); }
302 GX_FORCE_INLINE static b32 removeDirectory(const GxString& path) { return removeDirectory(path.getString()); }
304 GX_FORCE_INLINE static b32 isExist(const GxString& path) { return isExist(path.getString()); }
306 GX_FORCE_INLINE static b32 isDirectory(const GxString& path) { return isDirectory(path.getString()); }
308 GX_FORCE_INLINE static u64 getLastWriteTime(const GxString& path) { return getLastWriteTime(path.getString()); }
309
310private:
311#if defined(_WINDOWS) || defined(_XBOX_XS)
313 static void CALLBACK callbackAsyncRead(DWORD error, DWORD size, LPOVERLAPPED pOverlapped);
314#endif // _WINDOWS || _XBOX_XS
315
317 //-----------------------------------------------------------
319 //-----------------------------------------------------------
321public:
323 constexpr u32 getPosition(void) const { return _currentPosition; }
325 constexpr u32 getSize(void) const { return _size; }
327 GX_FORCE_INLINE GX_CSTR getPath(void) const { return _path.getString(); }
329 GX_FORCE_INLINE b32 isOpened(void) const { return (_state != STATE::INITIALIZED); }
331 GX_FORCE_INLINE b32 isReadable(void) const { return (static_cast<s32>(_mode) & static_cast<s32>(MODE::READ)) != 0; }
333 GX_FORCE_INLINE b32 isWritable(void) const { return (static_cast<s32>(_mode) & static_cast<s32>(MODE::WRITE)) != 0; }
335 constexpr MODE getMode(void) const { return _mode; }
337 constexpr STATE getState(void) const { return _state; }
339 GX_FORCE_INLINE b32 isAsync(void) const { return _isAsync; }
341 constexpr ASYNC_STATE getAsyncState(void) const { return _asyncState; }
343 constexpr ASYNC_ERROR getAsyncError(void) const { return _asyncError; }
344
346 //-----------------------------------------------------------
348 //-----------------------------------------------------------
350private:
351 GxNativeFileHandle _handle;
352#if defined(_WINDOWS) || defined(_XBOX_XS)
353 OVERLAPPED _overlapped;
354#endif // _WINDOWS || _XBOX_XS
355#if GX_DEVELOP
356 GX_HANDLE _debugHandle;
357#endif // GX_DEVELOP
358 GxString _path;
359 STATE _state;
360 MODE _mode;
361 u32 _size;
362 u32 _currentPosition;
363 b32 _isAsync;
364 ASYNC_STATE _asyncState;
365 ASYNC_ERROR _asyncError;
366 FILE_ASYNC_READ_USER_CALLBACK _pUserCallback;
367 void* _pUserPointer;
368
370};
371
372//===========================================================================
374//===========================================================================
376{
377 //-----------------------------------------------------------
379 //-----------------------------------------------------------
381public:
382 GX_RTTI_CLASS(GxFilePath, GxClassBase)
383 // GxClassBase継承クラス用禁止宣言
385
386public:
388 static constexpr GX_CCHAR DEFAULT_SEPARATOR = '/';
390 static constexpr GX_CCHAR REPLACE_SEPARATOR = '\\';
392 static constexpr GX_CCHAR SYSTEM_SEPARATOR = '/';
394 static constexpr GX_CCHAR SYSTEM_REPLACE = '\\';
395
396private:
398 static constexpr u32 SEPARATOR_REPEAT_PATH_LENGTH = 2;
400 static constexpr u32 NETWORK_PATH_LENGTH = 2;
402 static constexpr u32 MOVEUP_DIRECTORY_PATH_LENGTH = 3;
403
405 //-----------------------------------------------------------
407 //-----------------------------------------------------------
409protected:
411 GxFilePath(void) : _separator(0){}
412public:
414 GxFilePath(GX_CSTR path, GX_CCHAR separator = DEFAULT_SEPARATOR, b32 isAbsolutePath = false);
415
417 //-----------------------------------------------------------
419 //-----------------------------------------------------------
421public:
423 GX_FORCE_INLINE const GxString& getFullPath(void) const { return _fullPath; }
425 GX_FORCE_INLINE const GxString& getDirectoryPath(void) const { return _directoryPath; }
427 GX_FORCE_INLINE const GxString& getFileName(void) const { return _fileName; }
429 GX_FORCE_INLINE const GxString& getFileNameWithoutExtension(void) const { return _baseFileName; }
431 GX_FORCE_INLINE const GxString& getExtension(void) const { return _extension; }
432
434 //-----------------------------------------------------------
436 //-----------------------------------------------------------
438public:
440 void addDirectoryPath(GX_CSTR folderName);
442 void reduceDirectoryPath(void);
444 GX_FORCE_INLINE static b32 isSeparator(GX_CCHAR character) { return ((character == '/') | (character == '\\')); }
446 GX_FORCE_INLINE static b32 isPeriod(GX_CCHAR character) { return (character == '.'); }
448 GX_FORCE_INLINE static b32 isNetworkPath(GX_CSTR path) { return (isSeparator(path[0]) && isSeparator(path[1])); }
450 GX_FORCE_INLINE static b32 isMoveUpDirectoryPath(GX_CSTR path) { return (isSeparator(path[0]) && isPeriod(path[1]) && isPeriod(path[2])); }
452 static b32 isRootPath(GX_CSTR path);
454 static b32 isDirectoryPath(GX_CSTR path, GX_CCHAR separator = DEFAULT_SEPARATOR);
456 static b32 isRelativePath(GX_CSTR path);
458 static b32 convertSeparator(GX_STR path, GX_CCHAR separator = DEFAULT_SEPARATOR);
460 static void normalize(GxString& path, GX_CCHAR separator = DEFAULT_SEPARATOR);
462 static b32 extractFileName(GxString& dst, GX_CSTR path, GX_CCHAR separator = DEFAULT_SEPARATOR);
464 static b32 extractFileNameWithoutExtension(GxString& dst, GX_CSTR path, GX_CCHAR separator = DEFAULT_SEPARATOR);
466 static b32 extractExtension(GxString& dst, GX_CSTR path, GX_CCHAR separator = DEFAULT_SEPARATOR);
468 static b32 addExtension(GxString& dst, GX_CSTR path, GX_CSTR extension, GX_CCHAR separator = DEFAULT_SEPARATOR);
470 static b32 deleteExtension(GxString& dst, GX_CCHAR separator = DEFAULT_SEPARATOR);
472 static b32 deleteExtension(GxString& dst, GX_CSTR path, GX_CCHAR separator = DEFAULT_SEPARATOR);
474 static b32 isExistExtension(GX_CSTR path, GX_CCHAR separator = DEFAULT_SEPARATOR);
476 static void addDirectoryPath(GxString& dst, const GxString& src, const GxString& directory, GX_CCHAR separator = DEFAULT_SEPARATOR);
478 static b32 getRelativePath(GxString& dst, GX_CSTR basePath, GX_CSTR targetPath, b32 isUseDirectorySupport = true);
479
480private:
482 void analyse(const GxString& srcPath);
483
485 //-----------------------------------------------------------
487 //-----------------------------------------------------------
489private:
490 GX_CHAR _separator;
491 GxString _fullPath;
492 GxString _directoryPath;
493 GxString _fileName;
494 GxString _baseFileName;
495 GxString _extension;
496
498};
499
500GX_CORE_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE(__CLASS__)
GxClassBase継承の禁止宣言
Definition GxBase.h:240
GX_FORCE_INLINE b32 operator==(const GxColor color0, const GxColor color1)
Definition GxColor.inl:274
GX_FORCE_INLINE b32 operator!=(const GxColor color0, const GxColor color1)
Definition GxColor.inl:285
u32 GX_HANDLE
ハンドル
Definition GxDefine.h:214
オブジェクト基底クラス
Definition GxBase.h:88
ファイル管理クラス
Definition GxFile.h:157
static GX_FORCE_INLINE b32 createDirectory(const GxString &path)
ディレクトリ作成 (GxString指定)
Definition GxFile.h:298
GX_FORCE_INLINE b32 isReadable(void) const
読み取り可能判定
Definition GxFile.h:331
void(*) FILE_ASYNC_READ_USER_CALLBACK(void *pUser, GxFile &file, u32 size)
非同期読み込みユーザコールバック関数定義
Definition GxFile.h:232
u32 seek(s32 offset, SEEK_TYPE seekType=SEEK_TYPE::BEGIN)
ファイルシーク
Definition GxFile.cpp:1205
static GX_FORCE_INLINE u64 getLastWriteTime(const GxString &path)
最終更新日時の取得 (GxString指定)
Definition GxFile.h:308
u32 write(const void *pSrc, u32 size)
ファイル書き込み
Definition GxFile.cpp:1150
static constexpr u32 SECTOR_SIZE_MAX
最大パス文字列
Definition GxFile.h:181
GxFile(void)
コンストラクタ
Definition GxFile.cpp:772
GX_FORCE_INLINE b32 isOpened(void) const
オープン済み判定
Definition GxFile.h:329
static u64 getLastWriteTime(GX_CSTR path)
最終更新日時の取得
Definition GxFile.cpp:2058
constexpr ASYNC_STATE getAsyncState(void) const
非同期処理状態取得
Definition GxFile.h:341
static GX_FORCE_INLINE b32 isDirectory(const GxString &path)
ディレクトリチェック (GxString指定)
Definition GxFile.h:306
STATE
状態
Definition GxFile.h:210
@ INITIALIZED
初期状態
@ OPENED
オープン済み
static b32 copy(GX_CSTR srcPath, GX_CSTR dstPath)
ファイルコピー
Definition GxFile.cpp:1613
GX_FORCE_INLINE b32 isWritable(void) const
書き込み可能判定
Definition GxFile.h:333
constexpr ASYNC_ERROR getAsyncError(void) const
非同期処理エラー取得
Definition GxFile.h:343
static GX_FORCE_INLINE b32 move(const GxString &src, const GxString &dst)
ファイル移動 (GxString指定)
Definition GxFile.h:292
ASYNC_STATE
非同期処理状態
Definition GxFile.h:217
@ COMPLETE
非同期処理完了
@ NONE
非同期処理していない
@ PROGRESS
非同期処理中
constexpr STATE getState(void) const
状態取得
Definition GxFile.h:337
constexpr u32 getSize(void) const
ファイルサイズ取得
Definition GxFile.h:325
void close(void)
ファイルクローズ
Definition GxFile.cpp:1038
static b32 isExist(GX_CSTR path)
ファイル存在チェック
Definition GxFile.cpp:1922
static GX_FORCE_INLINE b32 copy(const GxString &src, const GxString &dst)
ファイルコピー (GxString指定)
Definition GxFile.h:294
static b32 createDirectory(GX_CSTR path)
ディレクトリ作成
Definition GxFile.cpp:1741
static b32 createDirectoryEx(GX_CSTR path, b32 isRecursive=false)
ディレクトリ作成 (指定の階層構造までの再帰作成)
Definition GxFile.cpp:1796
static b32 isDirectory(GX_CSTR path)
ディレクトリチェック
Definition GxFile.cpp:1981
GX_FORCE_INLINE GX_CSTR getPath(void) const
ファイルパス取得
Definition GxFile.h:327
constexpr MODE getMode(void) const
モード取得
Definition GxFile.h:335
static b32 remove(GX_CSTR path)
ファイル削除
Definition GxFile.cpp:1685
b32 open(GX_CSTR filename, MODE mode, PROCESS_TYPE type=PROCESS_TYPE::SYNC)
ファイルオープン
Definition GxFile.cpp:815
static GX_FORCE_INLINE b32 remove(const GxString &path)
ファイル削除 (GxString指定)
Definition GxFile.h:296
SEEK_TYPE
シークタイプ
Definition GxFile.h:201
@ BEGIN
先頭基準
@ CURRENT
カレント基準
@ END
末尾基準
b32 readAsync(void *pDst, u32 size, FILE_ASYNC_READ_USER_CALLBACK userCallback=nullptr, void *pUser=nullptr)
ファイル読み込み (非同期)
Definition GxFile.cpp:1461
void flush(void)
バッファフラッシュ
Definition GxFile.cpp:1282
static GX_FORCE_INLINE b32 createDirectoryEx(const GxString &path)
ディレクトリ再帰作成 (GxString指定)
Definition GxFile.h:300
u32 read(void *pDst, u32 size)
ファイル読み込み
Definition GxFile.cpp:1099
ASYNC_ERROR
非同期処理エラー
Definition GxFile.h:225
@ CANCEL
エラー:キャンセル
@ INVALID
エラー:異常
PROCESS_TYPE
処理タイプ
Definition GxFile.h:194
@ SYNC
同期処理
@ ASYNC
非同期処理
constexpr u32 getPosition(void) const
ファイルポインタ位置取得
Definition GxFile.h:323
MODE
ファイルアクセスモード
Definition GxFile.h:185
@ READWRITE
読み書き可能
@ READ
読み込み
@ TEMPORARY
テンポラリ
@ WRITE
書き込み
b32 setLastWriteTime(u64 time)
ファイル更新日時設定
Definition GxFile.cpp:1356
static GX_FORCE_INLINE b32 removeDirectory(const GxString &path)
ディレクトリ削除 (GxString指定)
Definition GxFile.h:302
static b32 move(GX_CSTR srcPath, GX_CSTR dstPath)
ファイル移動
Definition GxFile.cpp:1552
static b32 removeDirectory(GX_CSTR path)
ディレクトリ削除
Definition GxFile.cpp:1867
~GxFile(void) override
デストラクタ
Definition GxFile.cpp:803
static GX_FORCE_INLINE b32 isExist(const GxString &path)
ファイル存在チェック (GxString指定)
Definition GxFile.h:304
GX_FORCE_INLINE b32 isAsync(void) const
非同期処理フラグ取得
Definition GxFile.h:339
static b32 find(GxFileInformation &fileInfo, GX_CSTR path=nullptr)
ファイル検索
Definition GxFile.cpp:1521
ファイル情報クラス
Definition GxFile.h:19
ATTRIBUTE
属性
Definition GxFile.h:31
GX_FORCE_INLINE const GxString & getName(void) const
ファイル名取得
Definition GxFile.h:91
GX_FORCE_INLINE const GxString & getLastWriteTimeString(void) const
最終更新時刻文字列表記取得
Definition GxFile.h:89
~GxFileInformation(void) override
デストラクタ
Definition GxFile.h:60
constexpr u64 getSize(void) const
ファイルサイズ取得
Definition GxFile.h:93
GX_FORCE_INLINE b32 isDirectory(void) const
ディレクトリ判定
Definition GxFile.h:85
constexpr u64 getLastWriteTime(void) const
最終更新時刻取得
Definition GxFile.h:87
constexpr u32 getAttribute(void) const
属性取得
Definition GxFile.h:83
ファイルパス管理クラス
Definition GxFile.h:376
static b32 extractExtension(GxString &dst, GX_CSTR path, GX_CCHAR separator=DEFAULT_SEPARATOR)
拡張子抽出
Definition GxFile.cpp:2375
static constexpr GX_CCHAR SYSTEM_REPLACE
システム置換対象セパレータ
Definition GxFile.h:394
static GX_FORCE_INLINE b32 isPeriod(GX_CCHAR character)
ピリオド判定
Definition GxFile.h:446
static b32 isRootPath(GX_CSTR path)
ルートパス判定
Definition GxFile.cpp:2196
GX_FORCE_INLINE const GxString & getFileName(void) const
ファイル名取得 (拡張子含む)
Definition GxFile.h:427
static GX_FORCE_INLINE b32 isSeparator(GX_CCHAR character)
セパレータ判定
Definition GxFile.h:444
static constexpr GX_CCHAR DEFAULT_SEPARATOR
基本セパレータ
Definition GxFile.h:388
static GX_FORCE_INLINE b32 isNetworkPath(GX_CSTR path)
ネットワークパス判定
Definition GxFile.h:448
static b32 extractFileName(GxString &dst, GX_CSTR path, GX_CCHAR separator=DEFAULT_SEPARATOR)
ファイル名抽出
Definition GxFile.cpp:2295
static b32 deleteExtension(GxString &dst, GX_CCHAR separator=DEFAULT_SEPARATOR)
拡張子除去 (GxString入出力指定)
Definition GxFile.cpp:2435
static b32 isDirectoryPath(GX_CSTR path, GX_CCHAR separator=DEFAULT_SEPARATOR)
ディレクトリパス判定
Definition GxFile.cpp:2226
static constexpr GX_CCHAR SYSTEM_SEPARATOR
システムセパレータ
Definition GxFile.h:392
static b32 getRelativePath(GxString &dst, GX_CSTR basePath, GX_CSTR targetPath, b32 isUseDirectorySupport=true)
相対パス取得
Definition GxFile.cpp:2542
static b32 addExtension(GxString &dst, GX_CSTR path, GX_CSTR extension, GX_CCHAR separator=DEFAULT_SEPARATOR)
拡張子追加
Definition GxFile.cpp:2415
GxFilePath(void)
デフォルトコンストラクタ (使用禁止)
Definition GxFile.h:411
GX_FORCE_INLINE const GxString & getFullPath(void) const
フルパス取得
Definition GxFile.h:423
void reduceDirectoryPath(void)
ディレクトリを1階層上にする
Definition GxFile.cpp:2182
static GX_FORCE_INLINE b32 isMoveUpDirectoryPath(GX_CSTR path)
1階層上ディレクトリ移動パス判定
Definition GxFile.h:450
GX_FORCE_INLINE const GxString & getDirectoryPath(void) const
ディレクトリパス取得
Definition GxFile.h:425
static void normalize(GxString &path, GX_CCHAR separator=DEFAULT_SEPARATOR)
パスの正常化
Definition GxFile.cpp:2648
GX_FORCE_INLINE const GxString & getFileNameWithoutExtension(void) const
ファイル名取得 (拡張子含まない)
Definition GxFile.h:429
static b32 isRelativePath(GX_CSTR path)
相対パス判定
Definition GxFile.cpp:2237
static b32 extractFileNameWithoutExtension(GxString &dst, GX_CSTR path, GX_CCHAR separator=DEFAULT_SEPARATOR)
ファイル名抽出 (拡張子を含まない)
Definition GxFile.cpp:2334
void addDirectoryPath(GX_CSTR folderName)
ディレクトリパス追加
Definition GxFile.cpp:2173
GX_FORCE_INLINE const GxString & getExtension(void) const
拡張子取得
Definition GxFile.h:431
static b32 isExistExtension(GX_CSTR path, GX_CCHAR separator=DEFAULT_SEPARATOR)
拡張子存在判定
Definition GxFile.cpp:2494
static b32 convertSeparator(GX_STR path, GX_CCHAR separator=DEFAULT_SEPARATOR)
セパレータの変換
Definition GxFile.cpp:2261
static constexpr GX_CCHAR REPLACE_SEPARATOR
置換対象セパレータ
Definition GxFile.h:390
static constexpr u32 VALUE_1K
1K
Definition GxMath.h:129
static constexpr u32 VALUE_2K
2K
Definition GxMath.h:130
static constexpr u32 VALUE_4K
4K
Definition GxMath.h:131
ファイルシステムクラス
Definition GxSysFile.h:19
文字列型クラス
Definition GxString.h:18
GX_FORCE_INLINE s32 compare(GX_CSTR string) const
比較
Definition GxString.h:215
GX_FORCE_INLINE GX_STR getString(void)
文字列取得
Definition GxString.h:165
32bitブーリアン
Definition GxDefine.h:173