Main Page | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

# dkcSJISFileSystem.c File Reference

`#include "dkcOSIndependent.h"`
`#include "dkcSJISFileSystem.h"`
`#include "dkcStdio.h"`
`#include "dkcString.h"`
`#include "dkcThreadLock.h"`
`#include "dkcSingleList.h"`

Include dependency graph for dkcSJISFileSystem.c:

## Defines
#define | MAX_PATH_CHECK(dsize)
## Functions
BOOL WINAPI | dkcIsEffectivePath (const char *path, size_t size)
BOOL WINAPI | dkcIsRelativityPath (const char *path)
BOOL WINAPI | dkcIsAbsolutelyPath (const char *path)
BOOL WINAPI | dkcIsTailPathSep (const char *src, size_t dlen)
| srcの一番後ろににがついていたらTRUE
int WINAPI | dkcPushBackPathSep (char *dest, size_t dlen, size_t size)
| path separatorを挿入する必要があり、挿入出来たらTRUE
int WINAPI | dkcDirectoryConcatenate (char *dest, size_t dlen, size_t dsize, const char *src)
int WINAPI | dkcCurrentDirectoryConcatenate (char *dest, size_t dsize, const char *src)
int WINAPI | dkcToAbsolutelyPath (char *dest, size_t dsize, const char *src, size_t ssize)
| パスを正規化(相対パスから絶対パス)する関数
DKC_PATHSTRING *WINAPI | dkcAllocPathString (const char *path)
int WINAPI | dkcFreePathString (DKC_PATHSTRING **ptr)
size_t WINAPI | dkcPathStringSize (const DKC_PATHSTRING *p)
const char *WINAPI | dkcPathStringPointer (const DKC_PATHSTRING *p)
int WINAPI | dkcPathStringDevideBegin (DKC_PATHSTRING *ptr, char *buff, size_t size)
int WINAPI | dkcPathStringDevideNext (DKC_PATHSTRING *ptr, char *buff, size_t size)
void WINAPI | dkcPathStringDevideEnd (DKC_PATHSTRING *ptr)
int WINAPI | dkcPathStringDevideBegin_Logic (DKC_PATHSTRING *ptr, size_t *count, char *buff, size_t size)
| dkcPathStringDevideBegin()
int WINAPI | dkcPathStringDevideNext_Logic (DKC_PATHSTRING *ptr, size_t *count, char *buff, size_t size)
| dkcPathStringDevideNext()
void WINAPI | dkcPathStringDevideEnd_Logic (size_t *count)
| dkcPathStringDevideEnd()
int WINAPI | dkcPathStringElementInsert_Logic (DKC_PATHSTRING *ptr, size_t count, const char *src, size_t len)
| パスの要素を挿入する。(正規化はしない lenは文字数
int WINAPI | dkcPathStringElementErase_Logic (DKC_PATHSTRING *ptr, size_t count)
int WINAPI | dkcPathStringElementReplace_Logic (DKC_PATHSTRING *ptr, size_t count, const char *src, size_t len)
| パスの要素を置換する。(正規化はしない lenは文字数
int WINAPI | dkcPathStringCopy (DKC_PATHSTRING *ptr, const char *buff, size_t size)
| パスを正規化して入れる。
int WINAPI | dkcPathStringNormalizeConcatenateLogic (DKC_PATHSTRING *ptr, const char *buff, size_t size)
int WINAPI | dkcPathStringConcatenate (DKC_PATHSTRING *ptr, const char *buff, size_t size)
| パスを正規化して繋げる。
int WINAPI | dkcPathStringGetDrive (DKC_PATHSTRING *ptr, char *buff, size_t size)
int WINAPI | dkcPathStringGetFileExtension (DKC_PATHSTRING *ptr, char *buff, size_t size)
int WINAPI | dkcPathStringGetFileName (DKC_PATHSTRING *ptr, char *buff, size_t size)
int WINAPI | dkcPathStringGetDirectory (DKC_PATHSTRING *ptr, char *buff, size_t size)
BOOL WINAPI | dkcFileExist (const char *filename)
UINT WINAPI | dkcFileSize (const char *filename)
BOOL WINAPI | dkcSetCurrentDirectory (const char *filename)
BOOL WINAPI | dkcGetCurrentDirectory (char *buff, size_t size)
int WINAPI | dkcCreateDirectory (const char *pPath)
BOOL WINAPI | dkcFileCopy (const char *dest, const char *src)
BOOL WINAPI | dkcFileCopyEx (const char *dest, const char *src, size_t inner_buffer_size, BOOL bThreadLock)
BOOL WINAPI | dkcFileRemove (const char *filename)
BOOL WINAPI | dkcFileRename (const char *oldname, const char *newname)
DKC_FINDFILE *WINAPI | dkcAllocFindFile ()
int WINAPI | dkcFreeFindFile (DKC_FINDFILE **ptr)
int WINAPI | dkcFindFirstFile (DKC_FINDFILE *ptr, const char *target)
int WINAPI | dkcFindNextFile (DKC_FINDFILE *ptr)
int WINAPI | dkcFindClose (DKC_FINDFILE *ptr)
int WINAPI | dkcFindFileGetFileName (DKC_FINDFILE *ptr, char *buff, size_t buffsize)
BOOL WINAPI | dkcFindFileIsFolder (DKC_FINDFILE *ptr)
BOOL WINAPI | dkcFindFileIsDot (DKC_FINDFILE *ptr)
BOOL WINAPI | dkcFindFileIsNormalFile (DKC_FINDFILE *ptr)
BOOL WINAPI | dkcFindFileIsReadOnly (DKC_FINDFILE *ptr)
void WINAPI | dkcFindFileSize (DKC_FINDFILE *ptr, ULONG *High, ULONG *Low)

## Detailed Description

d金魚 @

## Define Documentation

#define MAX_PATH_CHECK | ( | dsize |  | ) |

| Value:
    {\
            dkcmNOT_ASSERT(dsize < dkcdMAXPATH_BUFFER);\
            if(dsize < dkcdMAXPATH_BUFFER){\
                    return edk_BufferOverFlow;\
            }\
    }

## Function Documentation

DKC_FINDFILE* WINAPI dkcAllocFindFile | ( |  | ) |

DKC_PATHSTRING* WINAPI dkcAllocPathString | ( | const char * | path | ) |

  | Parameters:
  path[in] | ファイル、ディレクトリへのパスを入れる。
Returns: 無効な文字列が使われていたり、上手く割り当て出来なかったらNULL Note: パスが相対パスだった場合、内部で勝手に絶対パスに変換される。

int WINAPI dkcCreateDirectory | ( | const char * | pPath | ) |

| Note: Thread safe ではありません。(多分safeでなくても大丈夫だと思いますが。

int WINAPI dkcCurrentDirectoryConcatenate | ( | char * | dest,
|  | size_t | dsize,
|  | const char * | src
| ) |

  | Parameters:
  dest[out] | バッファへのポインタ
  dsize[in] | destのサイズ
  src[in] | ファイルの文字列 無条件でsrcに入れた文字列をカレントディレクトリ+srcとしてdestに出力する。
Note: dsizeがdkcdMAXPATH_LEN以下だと失敗する。 Returns: edk_SUCCEEDEDで成功

int WINAPI dkcDirectoryConcatenate | ( | char * | dest,
|  | size_t | dlen,
|  | size_t | dsize,
|  | const char * | src
| ) |

  | Parameters:
  dest[in] | カレントディレクトリの文字列が入っているバッファへのポインタ
  dlen[in] | destの文字数
  dsize[in] | destのサイズ
  src[in] | 元文字列
Returns: dlen + 2 > dsizeだとバッファオーバーフローする可能性があるので失敗する。

BOOL WINAPI dkcFileCopy | ( | const char * | dest,
|  | const char * | src
| ) |

| Note: thread safe ではありません。（気になる方はdkcFileCopyExをお使いください。) 何故ならコピーするファイルがデカいと処理が止まったままになってしまうからです。

BOOL WINAPI dkcFileCopyEx | ( | const char * | dest,
|  | const char * | src,
|  | size_t | inner_buffer_size,
|  | BOOL | bThreadLock
| ) |

  | Parameters:
  inner_buffer_size[in] | 内部のコピーで使うバッファのサイズを設定する。
  bThreadLock[in] | TRUEだとスレッドをロックする。(大きいファイルの場合は危険)
Returns: TRUEだと成功 Todo: HDのサイズ等を取得してコピーするのが安全かどうかを調べなければならない。 スレッド生成してすぐに処理を返すとか？ スレッドをロックするオプションは廃止する。

BOOL WINAPI dkcFileExist | ( | const char * | filename | ) |

| Returns: TRUEだとファイルが存在する

BOOL WINAPI dkcFileRemove | ( | const char * | filename | ) |

  | ファイルを削除する。 Returns: 削除できたらTRUE Parameters:
  filename[in] | ファイル名

BOOL WINAPI dkcFileRename | ( | const char * | oldname,
|  | const char * | newname
| ) |

  | Parameters:
  oldname[in] | 古い名前へのポインタ
  newname[in] | 新しい名前へのポインタ

UINT WINAPI dkcFileSize | ( | const char * | filename | ) |

| Returns: 0だとファイルサイズが０　または　内部エラー また　はファイルが存在しない

int WINAPI dkcFindClose | ( | DKC_FINDFILE * | ptr | ) |

| FindClose() See also: dkcFindFirstFile()

int WINAPI dkcFindFileGetFileName | ( | DKC_FINDFILE * | ptr,
|  | char * | buff,
|  | size_t | buffsize
| ) |

BOOL WINAPI dkcFindFileIsDot | ( | DKC_FINDFILE * | ptr | ) |

BOOL WINAPI dkcFindFileIsFolder | ( | DKC_FINDFILE * | ptr | ) |

BOOL WINAPI dkcFindFileIsNormalFile | ( | DKC_FINDFILE * | ptr | ) |

BOOL WINAPI dkcFindFileIsReadOnly | ( | DKC_FINDFILE * | ptr | ) |

void WINAPI dkcFindFileSize | ( | DKC_FINDFILE * | ptr,
|  | ULONG * | High,
|  | ULONG * | Low
| ) |

int WINAPI dkcFindFirstFile | ( | DKC_FINDFILE * | ptr,
|  | const char * | target
| ) |

| Windowsで言うFindFirstFile()のラッパー UNIXやLINUXでも動くかも？

int WINAPI dkcFindNextFile | ( | DKC_FINDFILE * | ptr | ) |

| FindNextFile() See also: dkcFindFirstFile()

int WINAPI dkcFreeFindFile | ( | DKC_FINDFILE ** | ptr | ) |

int WINAPI dkcFreePathString | ( | DKC_PATHSTRING ** | ptr | ) |

BOOL WINAPI dkcGetCurrentDirectory | ( | char * | buff,
|  | size_t | size
| ) |

| Returns: TRUEで成功

BOOL WINAPI dkcIsAbsolutelyPath | ( | const char * | path | ) |

| Returns: パスが絶対パスだったらTRUE

BOOL WINAPI dkcIsEffectivePath | ( | const char * | path,
|  | size_t | size
| ) |

| Returns: pathが存在して、有効なパス名だったらTRUE

BOOL WINAPI dkcIsRelativityPath | ( | const char * | path | ) |

| Returns: パスが相対パスだったらTRUE

BOOL WINAPI dkcIsTailPathSep | ( | const char * | src,
|  | size_t | dlen
| ) |

| srcの一番後ろににがついていたらTRUE \

int WINAPI dkcPathStringConcatenate | ( | DKC_PATHSTRING * | ptr,
|  | const char * | buff,
|  | size_t | size
| ) |

| パスを正規化して繋げる。

int WINAPI dkcPathStringCopy | ( | DKC_PATHSTRING * | ptr,
|  | const char * | buff,
|  | size_t | size
| ) |

| パスを正規化して入れる。

int WINAPI dkcPathStringDevideBegin | ( | DKC_PATHSTRING * | ptr,
|  | char * | buff,
|  | size_t | size
| ) |

int WINAPI dkcPathStringDevideBegin_Logic | ( | DKC_PATHSTRING * | ptr,
|  | size_t * | count,
|  | char * | buff,
|  | size_t | size
| ) |

| dkcPathStringDevideBegin()

void WINAPI dkcPathStringDevideEnd | ( | DKC_PATHSTRING * | ptr | ) |

void WINAPI dkcPathStringDevideEnd_Logic | ( | size_t * | count | ) |

| dkcPathStringDevideEnd()

int WINAPI dkcPathStringDevideNext | ( | DKC_PATHSTRING * | ,
|  | char * | buff,
|  | size_t | size
| ) |

| Returns: edk_EndProcessが返ってきたらdkcPathStringDevideEnd()を呼び出して終了する

int WINAPI dkcPathStringDevideNext_Logic | ( | DKC_PATHSTRING * | ptr,
|  | size_t * | count,
|  | char * | buff,
|  | size_t | size
| ) |

| dkcPathStringDevideNext()

int WINAPI dkcPathStringElementErase_Logic | ( | DKC_PATHSTRING * | ptr,
|  | size_t | count
| ) |

int WINAPI dkcPathStringElementInsert_Logic | ( | DKC_PATHSTRING * | ptr,
|  | size_t | count,
|  | const char * | src,
|  | size_t | len
| ) |

| パスの要素を挿入する。(正規化はしない lenは文字数

int WINAPI dkcPathStringElementReplace_Logic | ( | DKC_PATHSTRING * | ptr,
|  | size_t | count,
|  | const char * | src,
|  | size_t | len
| ) |

| パスの要素を置換する。(正規化はしない lenは文字数

int WINAPI dkcPathStringGetDirectory | ( | DKC_PATHSTRING * | ,
|  | char * | buff,
|  | size_t | size
| ) |

| Note: 取得した文字列の最後尾に\を付加させる。

int WINAPI dkcPathStringGetDrive | ( | DKC_PATHSTRING * | ptr,
|  | char * | buff,
|  | size_t | size
| ) |

int WINAPI dkcPathStringGetFileExtension | ( | DKC_PATHSTRING * | ptr,
|  | char * | buff,
|  | size_t | size
| ) |

int WINAPI dkcPathStringGetFileName | ( | DKC_PATHSTRING * | ptr,
|  | char * | buff,
|  | size_t | size
| ) |

int WINAPI dkcPathStringNormalizeConcatenateLogic | ( | DKC_PATHSTRING * | ptr,
|  | const char * | buff,
|  | size_t | size
| ) |

const char* WINAPI dkcPathStringPointer | ( | const DKC_PATHSTRING * | p | ) |

size_t WINAPI dkcPathStringSize | ( | const DKC_PATHSTRING * | p | ) |

int WINAPI dkcPushBackPathSep | ( | char * | dest,
|  | size_t | dlen,
|  | size_t | size
| ) |

  | path separatorを挿入する必要があり、挿入出来たらTRUE Parameters:
  dest[in] | バッファ
  dlen[in] | destの文字数
  size[in] | destのサイズ
Returns: edk_SUCCEEDEDなら成功 edk_OutputBufferWasLostはバッファが足りなかった その他は入れる必要が無かった。

BOOL WINAPI dkcSetCurrentDirectory | ( | const char * | filename | ) |

| Returns: TRUEで成功

int WINAPI dkcToAbsolutelyPath | ( | char * | dest,
|  | size_t | dsize,
|  | const char * | src,
|  | size_t | ssize
| ) |

| パスを正規化(相対パスから絶対パス)する関数