13GX_CORE_NAMESPACE_BEGIN()
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),
85 GX_FORCE_INLINE
b32 isDirectory(
void)
const {
return (_attribute & ATTRIBUTE_DIRECTORY); }
93 constexpr u64
getSize(
void)
const {
return _size; }
97 static u64 getWindowsTimeFromUnixTime(time_t unixTime);
99 static time_t getUnixTimeFromWindowsTime(u64 windowsTime);
103 void setInformation(GX_CSTR filename, u64 size, u64 lastWriteTime, u32 attribute);
107 void setInformation(GX_CSTR path,
const GxNativeFileEntry& findData);
116 b32 findFirst(GX_CSTR path);
120 void findClose(
void);
128 GxNativeFindHandle _findHandle;
129#if defined(_PS4) || defined(_PS5)
130 GxNativeFindBuffer _findBuffer;
133 u32 _findBufferIndex;
135#if defined(_WINDOWS) || defined(_XBOX_XS)
140#if defined(_NX64) || defined(_PS5)
172#if defined(_PS4) || defined(_PS5)
174#elif defined(_WINDOWS) || defined(_XBOX_XS)
175 static constexpr u32 FILE_PATH_MAX = MAX_PATH;
177 static constexpr u32 FILE_PATH_MAX = 260;
256 u32
read(
void* pDst, u32 size);
258 u32
write(
const void* pSrc, u32 size);
273 static b32 move(GX_CSTR srcPath, GX_CSTR dstPath);
275 static b32 copy(GX_CSTR srcPath, GX_CSTR dstPath);
311#if defined(_WINDOWS) || defined(_XBOX_XS)
313 static void CALLBACK callbackAsyncRead(DWORD error, DWORD size, LPOVERLAPPED pOverlapped);
323 constexpr u32
getPosition(
void)
const {
return _currentPosition; }
325 constexpr u32
getSize(
void)
const {
return _size; }
351 GxNativeFileHandle _handle;
352#if defined(_WINDOWS) || defined(_XBOX_XS)
353 OVERLAPPED _overlapped;
362 u32 _currentPosition;
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;
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 ==
'.'); }
482 void analyse(
const GxString& srcPath);
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
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
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
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
PROCESS_TYPE
処理タイプ
Definition GxFile.h:194
constexpr u32 getPosition(void) const
ファイルポインタ位置取得
Definition GxFile.h:323
MODE
ファイルアクセスモード
Definition GxFile.h:185
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: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