ディレクトリ内のファイル数を取得する方法 – プログラミング – Home

ディレクトリ内のファイル数を取得する方...
 
通知
すべてクリア

[解決済] ディレクトリ内のファイル数を取得する方法


Who
 Who
(@Who)
ゲスト
結合: 23年前
投稿: 8
Topic starter  

指定したディレクトリ内のファイル数を
知る方法をどなたかご教授下さい。

Windows2000、VC++6.0、MFC不使用


引用未解決
トピックタグ
アイススケーター
 アイススケーター
(@アイススケーター)
ゲスト
結合: 23年前
投稿: 280
 

FindFirstFileを使って、*.*を検索し、ファイルの識別分をカウントすればOKです。

サブディレクトリの場合は、再起法を使ってサブディレクトリ分をさらに加算します。


返信引用
Who
 Who
(@Who)
ゲスト
結合: 23年前
投稿: 8
Topic starter  

了解です。

やってみます。


返信引用
アイススケーター
 アイススケーター
(@アイススケーター)
ゲスト
結合: 23年前
投稿: 280
 

ちなみに、昔作ったプログラムでTree表示するプログラムが下記です。
これは、FindFirstFileを使わず_findfirstと_findnextを使用しています。

#include <afxwin.h>
#include <io.h>
#include <direct.h>

BOOL flgDir;
BOOL flgTime;

void PrintFileName(
struct _finddata_t *fileinfo,
short nCnt
)
{
short i;
char sBuf[256];
char sWk[80];

struct tm *newtime;

memset( sBuf, 0, sizeof(sBuf) );

if( flgTime == TRUE) {
newtime = localtime( &fileinfo->time_write);
// memset( sWk, ' ', sizeof(sWk) );
// sWk[79 - strlen(sBuf) - 24] = 0;
// printf( %s, sWk);
printf( %02d/%02d/%02d %02d:%02d:%02d ,
newtime->tm_year % 100, newtime->tm_mon,
newtime->tm_mday,
newtime->tm_hour, newtime->tm_min, newtime-
>tm_sec);
}
for( i = 0; i < nCnt; i++) {
if( ( i == 0) &&
( fileinfo->attrib == _A_SUBDIR) &&
( flgDir == TRUE) ) {
printf( d );
} else {
printf( );
}
}
printf( fileinfo->name);
printf( %s, sBuf);

printf( \n);
}

void PrintTree(
short nNest
)
{
long hFile;
struct _finddata_t fileinfo;

hFile = _findfirst( *.*, &fileinfo );

while( _findnext( hFile, &fileinfo ) == 0 ) {
//
if( fileinfo.attrib == _A_SUBDIR ) {
if( fileinfo.name[0] != '.') {
PrintFileName( &fileinfo, nNest + 1);
_chdir( fileinfo.name);
PrintTree( nNest + 1);
_chdir( ..);
}
} else {
PrintFileName( &fileinfo, nNest + 1);
}
}
}

void main(
int argc,
char *argv[]
)
{
char **p;
char *pDat;

flgDir = FALSE;
flgTime = FALSE;

p = argv;
if( argc > 1) {
//
while( *++p != 0) {
pDat = *p;
if( *pDat == '-') {
if( ( *(pDat + 1) & 0xdf) == 'D') {
flgDir = TRUE;
} else if( ( *(pDat + 1) & 0xdf) == 'T') {
flgTime = TRUE;
}
}
pDat++;
}
}
PrintTree( 0);
}


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました