情報取得の方法について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
C言語はじめたばかりです。

情報取得の方法について

#1

投稿記事 by C言語はじめたばかりです。 » 16年前

こんにちは。

フォルダ内のフォルダ、ファイル一覧を、配列に格納するにはどうすれば良いんですか?
その際、サイズ、更新日時も取得したいです。

C言語の文法(ポインタ等)は理解したつもりですが、やりたいことが全然出来ず困っています。
参考になる本等あれば教えてください。

よろしくおねがいします。

non

Re:情報取得の方法について

#2

投稿記事 by non » 16年前

環境がわからないと、答えられませんが、
Windowsなら、ここが参考になります。
http://msdn.microsoft.com/ja-jp/library/kda16keh.aspx

C言語はじめたばかりです。

Re:情報取得の方法について

#3

投稿記事 by C言語はじめたばかりです。 » 16年前

nonさま有難うございます。

ただ、実際に動かそうと思って、サンプルを実行してみたところ
main.cpp(14) : error C2065: 'intptr_t' : 定義されていない識別子です。
main.cpp(14) : error C2146: 構文エラー : ';' が、識別子 'hFile' の前に必要です。
main.cpp(14) : error C2065: 'hFile' : 定義されていない識別子です。
main.cpp(30) : error C2065: 'ctime_s' : 定義されていない識別子です。
main.cpp(30) : error C2065: '_countof' : 定義されていない識別子です。
main.cpp(36) : fatal error C1004: 予期せぬ EOF が検出されました。
サンプル自体を動かせないていれべるなので、もう少しアドバイスいただけますか?

環境はWindows XP SP3のVC++6.0です。
// crt_find.c
// This program uses the 32-bit _find functions to print
// a list of all files (and their attributes) with a .C extension
// in the current directory.

#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <time.h>

int main( void )
{
   struct _finddata_t c_file;
   intptr_t hFile;

   // Find first .c file in current directory 
   if( (hFile = _findfirst( "*.c", &c_file )) == -1L )
      printf( "No *.c files in current directory!\n" );
   else
   {
      printf( "Listing of .c files\n\n" );
      printf( "RDO HID SYS ARC  FILE         DATE %25c SIZE\n", ' ' );
      printf( "--- --- --- ---  ----         ---- %25c ----\n", ' ' );
      do {
         char buffer[30];
         printf( ( c_file.attrib & _A_RDONLY ) ? " Y  " : " N  " );
         printf( ( c_file.attrib & _A_HIDDEN ) ? " Y  " : " N  " );
         printf( ( c_file.attrib & _A_SYSTEM ) ? " Y  " : " N  " );
         printf( ( c_file.attrib & _A_ARCH )   ? " Y  " : " N  " );
         ctime_s( buffer, _countof(buffer), &c_file.time_write );
         printf( " %-12s %.24s  %9ld\n",
            c_file.name, buffer, c_file.size );
      } while( _findnext( hFile, &c_file ) == 0 );
      _findclose( hFile );
   }

non

Re:情報取得の方法について

#4

投稿記事 by non » 16年前

#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <time.h>

int main( void )
{
   struct _finddata_t c_file;
   long hFile;

   // Find first .c file in current directory 
   if( (hFile = _findfirst( "*.c", &c_file )) == -1L )
      printf( "No *.c files in current directory!\n" );
   else
   {
      printf( "Listing of .c files\n\n" );
      printf( "RDO HID SYS ARC  FILE         DATE %25c SIZE\n", ' ' );
      printf( "--- --- --- ---  ----         ---- %25c ----\n", ' ' );
      do {
         char buffer[30];
         printf( ( c_file.attrib & _A_RDONLY ) ? " Y  " : " N  " );
         printf( ( c_file.attrib & _A_HIDDEN ) ? " Y  " : " N  " );
         printf( ( c_file.attrib & _A_SYSTEM ) ? " Y  " : " N  " );
         printf( ( c_file.attrib & _A_ARCH )   ? " Y  " : " N  " );
         printf( " %-12s %.24s  %9ld\n", c_file.name, ctime( &( c_file.time_write ) ),c_file.size );

      } while( _findnext( hFile, &c_file ) == 0 );
      _findclose( hFile );
   }
}

toyo

Re:情報取得の方法について

#5

投稿記事 by toyo » 16年前

VC++のバージョンで関数の仕様が違うようです
古い方
http://msdn.microsoft.com/ja-jp/library ... 71%29.aspx

C言語はじめたばかりです。

Re:情報取得の方法について

#6

投稿記事 by C言語はじめたばかりです。 » 16年前

ありがとうございました。
とても助かりました。

閉鎖

“C言語何でも質問掲示板” へ戻る