Fortran 95 でディレクトリの内容を取得するにはどうすればよいですか?
8524 次
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 に答える