私の目標は、ディレクトリ内のファイルの数を数えることです。調べてみると、ディレクトリ内の各ファイルを反復処理するコードが見つかりました。しかし、問題は、それが余分な時間をループしていることです。より正確には、2倍余分にループしています。
だから
int main(void)
{   
  DIR           *d;
  struct dirent *dir;  
  char *ary[10000];
  char fullpath[256];  
  d = opendir("D:\\frames\\");
  if (d)
  {    
   int count = 1;
    while ((dir = readdir(d)) != NULL)
    {  
       snprintf(fullpath, sizeof(fullpath), "%s%d%s", "D:\\frames\\", count, ".jpg");
       int fs = fsize(fullpath);
       printf("%s\t%d\n", fullpath, fs); // using this line just for output purposes
      count++;      
    }      
    closedir(d);
  }
  getchar();
  return(0);
}
私のフォルダには500個のファイルが含まれていますが、出力は502まで表示されます
アップデート
次のようにコードを変更しました
struct stat buf;
if ( S_ISREG(buf.st_mode) ) // <-- I'm assuming this says "if it is a file"
{
  snprintf(fullpath, sizeof(fullpath), "%s%d%s", "D:\\frames\\", count, ".jpg");
  int fs = fsize(fullpath);
  printf("%s\t%d\n", fullpath, fs);
}
しかし、私は得てstorage size of "buf" isn't knownいます。私もやってみstruct stat buf[100]ましたが、それも役に立ちませんでした。