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:

Include dependency graph

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だとファイルサイズが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
 

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


Generated on Mon Apr 26 19:37:12 2004 for dkutil_c by doxygen 1.3.6