cmn-clib(CommonLibraryForC)
C言語共通ライブラリ
 全て データ構造 ファイル 関数 変数 型定義 列挙型 列挙値 マクロ定義
CmnFile.h
[詳解]
1 
10 #ifndef CMNCLIB_CMN_FILE_H
11 #define CMNCLIB_CMN_FILE_H
12 
13 #include "cmnclib/Common.h"
14 #include "cmnclib/CmnData.h"
15 #include "cmnclib/CmnString.h"
16 #include "cmnclib/CmnTime.h"
17 
18 /* 不要
19 typedef enum {
20  CMN_FILE_WRITE_MODE_NEW,
21  CMN_FILE_WRITE_MODE_ADD_HEAD,
22  CMN_FILE_WRITE_MODE_ADD_TAIL
23 } CMN_FILE_WRITE_MODE;
24 */
25 
26 #if IS_PRATFORM_WINDOWS()
27 
28  #define CMN_FILE_PATH_DELIMITER "\\"
29 
30  #define CMN_FILE_MAX_PATH (4096)
31 
32  #define CMN_FILE_MAX_FILE_NAME (1024)
33 #else
34 
35  #define CMN_FILE_PATH_DELIMITER "/"
36 
37  #define CMN_FILE_MAX_PATH (4096)
38 
39  #define CMN_FILE_MAX_FILE_NAME (1024)
40 #endif
41 
43 typedef struct _tag_CmnFileInfo {
44  /* TODO : パス長を無制限にしたい。char[]からCmnStringBufferに差し替えたいがメモリ解放がネック。メモリマネージャを実装したら差し替えすること。 */
47  size_t size;
49  unsigned int isDirectory: 1;
50  unsigned int isFile: 1;
51  unsigned int isHiddenFile: 1;
52  unsigned int isSystemFile: 1;
53  unsigned int isSymbolicLink: 1;
54 } CmnFileInfo;
55 
56 /* --- CmnFile.c --- */
57 D_EXTERN CmnStringBuffer* CmnFile_ReadAllText(const char *filePath, CmnStringBuffer *buf);
58 D_EXTERN CmnDataBuffer* CmnFile_ReadAll(const char *filePath, CmnDataBuffer *buf);
59 D_EXTERN int CmnFile_WriteNew(const char *filePath, void *data, size_t len);
60 D_EXTERN int CmnFile_WriteHead(const char *filePath, void *data, size_t len);
61 D_EXTERN int CmnFile_WriteTail(const char *filePath, void *data, size_t len);
62 D_EXTERN int CmnFile_Remove(const char *path);
63 D_EXTERN CmnDataList* CmnFile_List(const char *path, CmnDataList *list, CHARSET pathCharset);
64 D_EXTERN char* CmnFile_ToAbsolutePath(const char *path, char *buf, size_t buflen, CHARSET pathCharset);
65 D_EXTERN char* CmnFile_GetCurrentDirectory(char *buf, size_t buflen);
66 D_EXTERN int CmnFile_Exists(const char *path);
67 D_EXTERN CmnFileInfo* CmnFile_GetFileInfo(const char *path, CmnFileInfo *info);
68 D_EXTERN char* CmnFileInfo_ToString(const CmnFileInfo *info, char *buf);
69 
70 
71 
72 #endif /* CMNCLIB_CMN_FILE_H */
D_EXTERN CmnDataList * CmnFile_List(const char *path, CmnDataList *list, CHARSET pathCharset)
path直下のファイル/ディレクトリ一覧を取得する。
Definition: CmnFile.c:252
Definition: CmnData.h:24
D_EXTERN char * CmnFile_GetCurrentDirectory(char *buf, size_t buflen)
カレントディレクトリを取得する
Definition: CmnFile.c:339
Definition: CmnData.h:44
D_EXTERN int CmnFile_WriteHead(const char *filePath, void *data, size_t len)
データをファイルの先頭に追加する。ファイルがなければ新規作成。
Definition: CmnFile.c:138
Definition: CmnTime.h:20
D_EXTERN int CmnFile_Exists(const char *path)
pathが実在するかチェックする
Definition: CmnFile.c:375
日付/時刻系 共通関数 I/Fヘッダファイル
char parentDir[CMN_FILE_MAX_PATH]
Definition: CmnFile.h:45
unsigned int isFile
Definition: CmnFile.h:50
struct _tag_CmnFileInfo CmnFileInfo
構造化データ操作 共通関数 I/Fヘッダファイル
D_EXTERN int CmnFile_Remove(const char *path)
ファイルを削除する
Definition: CmnFile.c:221
#define CMN_FILE_MAX_PATH
Definition: CmnFile.h:37
D_EXTERN CmnFileInfo * CmnFile_GetFileInfo(const char *path, CmnFileInfo *info)
ファイル情報を取得する
Definition: CmnFile.c:404
D_EXTERN int CmnFile_WriteNew(const char *filePath, void *data, size_t len)
データをファイルに書き込む。ファイルがなければ新規作成。ファイルがあれば上書き。
Definition: CmnFile.c:121
D_EXTERN CmnStringBuffer * CmnFile_ReadAllText(const char *filePath, CmnStringBuffer *buf)
ファイルをテキストデータとして全て読み込む
Definition: CmnFile.c:50
unsigned int isDirectory
Definition: CmnFile.h:49
Definition: CmnFile.h:43
共通関数 メインヘッダファイル
enum enmCHARSET CHARSET
size_t size
Definition: CmnFile.h:47
文字列系 共通関数 I/Fヘッダファイル
unsigned int isHiddenFile
Definition: CmnFile.h:51
unsigned int isSystemFile
Definition: CmnFile.h:52
Definition: CmnString.h:27
D_EXTERN char * CmnFile_ToAbsolutePath(const char *path, char *buf, size_t buflen, CHARSET pathCharset)
絶対パスを取得する
Definition: CmnFile.c:282
#define CMN_FILE_MAX_FILE_NAME
Definition: CmnFile.h:39
char name[CMN_FILE_MAX_FILE_NAME]
Definition: CmnFile.h:46
D_EXTERN CmnDataBuffer * CmnFile_ReadAll(const char *filePath, CmnDataBuffer *buf)
ファイルを全て読み込む
Definition: CmnFile.c:89
unsigned int isSymbolicLink
Definition: CmnFile.h:53
D_EXTERN int CmnFile_WriteTail(const char *filePath, void *data, size_t len)
データをファイルの末尾に追加する。ファイルがなければ新規作成。
Definition: CmnFile.c:172
CmnTimeDateTime lastUpdateTime
Definition: CmnFile.h:48