Как получить содержимое каталога в Fortran 95?
Список содержимого каталога в Fortran
Ответы (3)
Если у нас есть все файлы в папке «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)
! написать (глагол, '(a)') обрезать (stationFileNames (i)) конец сделать закрыть (31)
Чтобы быть педантичным, вы не делаете. В Fortran 95 нет встроенных функций, которые могли бы вам помочь.
В системе POSIX и последнем компиляторе Fortran вы можете использовать ISO_C_BINDING для создания интерфейсов к функциям POSIX opendir() и readdir() (или readdir_r(), если вам нужна безопасность потоков), которые позволяют вам перебирать записи каталога.
В Фортране нет понятия каталога как такового. Он читает файлы. (Есть некоторые процессоры, которые даже не имеют концепции каталога).
С учетом сказанного, проще всего было бы использовать SYSTEM. Зависит от того, что вы хотите с этим после...