0

Fortran 95 でディレクトリの内容を取得するにはどうすればよいですか?

4

3 に答える 3

6

「inFiles」フォルダーにすべてのファイルがある場合は、最初にファイルの数を確認し、次にそれらの名前を配列に読み取ります。これを確認してください。

  real :: r
  integer :: i,reason,NstationFiles,iStation
  character(LEN=100), dimension(:), allocatable :: stationFileNames

  ! get the files
  call system('ls ./inFiles > fileContents.txt')
  open(31,FILE='fileContents.txt',action="read")
  !how many
  i = 0
  do
   read(31,FMT='(a)',iostat=reason) r
   if (reason/=0) EXIT
   i = i+1
  end do
  NstationFiles = i
  write(verb,'(a,I0)') "Number of station files: " , NstationFiles
  allocate(stationFileNames(NstationFiles))
  rewind(31)
  do i = 1,NstationFiles
   read(31,'(a)') stationFileNames(i)

! write(verb,'(a)') トリム(stationFileNames(i)) end do close(31)

于 2013-07-31T21:14:47.910 に答える
3

衒学的であるために、あなたはしません。Fortran 95 には、役立つ組み込み関数などはありません。

POSIX システムと最近の Fortran コンパイラでは、ISO_C_BINDING を使用して POSIX の opendir() および readdir() 関数 (スレッド セーフが必要な場合は readdir_r()) へのインターフェイスを作成できます。これにより、ディレクトリ エントリを反復処理できます。

于 2012-01-17T13:44:45.367 に答える
2

それ自体、Fortranにはディレクトリの概念はありません。ファイルを読み取ります。(ディレクトリの概念すら持っていないプロセッサもあります)。

そうは言っても、最も簡単な方法はSYSTEMを使用することです。その後、あなたが望むものに依存します...

于 2012-01-17T14:46:58.700 に答える