CFカード内にあるファイル一覧をパラメータで渡されたファイルに出力します。ファイル一覧を取得したいフォルダを任意に指定できます。読み出すファイル一覧はパラメータで渡されたフォルダ以下を再帰的探索して得られたすべてのファイルです。
関数名
INT WINAPI EasyGetListRecursivelyInCfCard(LPCSTR sNodeName, LPCSTR sDirectory, INT* oiCount, LPCSTR sSaveFileName) ;
引数
sNodeName: 局名は「#WinGP」固定になります。
sDirectory: 取得するフォルダ名(すべて大文字)
oiCount: 読み出したファイルの数
sSaveFileName: 読み出したディレクトリ情報の格納先ファイル名。なお、指定したファイル内には、stEasyRecursiveDirInfo型の配列に格納されたデータが、oiCountで返された個数分、バイナリデータとして格納されます。
struct stEasyRecursiveDirInfo {
BYTE bFileName[8+1];// ファイル名( 最後は0 で完結)
BYTE bExt[3+1];// ファイルの拡張子( 最後は0 で完結)
BYTE bDummy[3];// ダミー
DWORD dwFileSize;// ファイルのサイズ
BYTE bFileTimeStamp[8+1];// ファイルのタイムスタンプ( 最後は0 で完結)
BYTE bFolderName[260+1];// フォルダ名( 最後は0 で完結。残りの部分は0が格納される)
BYTE bDummy2[2];// ダミー2
} ;
戻り値
正常終了:0
異常終了:エラーコード
特記事項
「bFileTimeStamp」の補足として、8バイトのうち、上位4 バイトがMS-DOS形式の時刻を、下位4バイトがMS-DOS形式の日付を16進文字列として表しています。
なお、MS-DOS形式の日付、時刻のフォーマットは以下のとおりです。
例 : 20C42C22の場合、2C22がMS-DOSの日付を16進で表記したもの、20C4がMS-DOSの時刻を16進で表したものとなるため、2002/1/2 4:6:8 を表すことになります。
ビット0 ~ 4
年月日の日(1 ~ 31)。
ビット5 ~ 8
年月日の月(1=1 月、2=2 月、~ 12=12 月)。
ビット9 ~ 15
年月日の年。ただし、1980年からの経過年数で指定します。これらのビットが表す値に1980を足すと、実際の年が得られます。
MS-DOS形式の時刻を指定します。この日付は、次の形式で1個の16ビット値にパックされています。
ビット0 ~ 4
時分秒の秒を 2 で割った値です(0 ~ 29)。
ビット5~10
時分秒の分(0 ~ 59)。
ビット11~15
時分秒の時(24 時間制で 0 ~ 23)。
読み出したファイル一覧の中に、ファイル名が8文字に満たない場合または拡張子名が3文字に満たないファイルが含まれる場合、bFileName[8+1]およびbExt[3+1]は、以下のように表示されます。
bFileName[8+1]の表示 |
ファイル名が8文字に満たない部分の先頭に0が格納され、その後は不定値が格納される |
bExt[3+1]の表示 |
拡張子名が3文字に満たない部分の先頭に0が格納され、その後は不定値が格納される |
(例)ファイル名および拡張子名がABC.Dの場合
bFileName[8+1] |
0x410x420x430x00******************** (****は不定値) |
bExt[3+1] |
0x440x00******** (****は不定値) |