Распечатка содержимого каталога в Fortran - PullRequest
1 голос
/ 17 января 2012

Как мне получить содержимое каталога в Fortran 95?

Ответы [ 4 ]

6 голосов
/ 01 августа 2013

просто, если у нас есть все файлы в папке '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 (глагол, '(a)')

3 голосов
/ 17 января 2012

Чтобы быть педантичным, вы не должны. В Фортране 95 нет ничего такого, что могло бы вам помочь.

В системе POSIX и недавнем компиляторе Фортрана вы можете использовать ISO_C_BINDING для создания интерфейсов с функциями POSIX opendir () и readdir () (или readdir_r (), если вам нужна безопасность потоков), которые позволяют выполнять итерации по записи каталога.

2 голосов
/ 17 января 2012

В Фортране нет понятия каталога как такового.Он читает файлы.(Есть некоторые процессоры, у которых даже нет понятия каталога).

С учетом вышесказанного, самый простой способ - это SYSTEM.Зависит от того, что вы хотите с этим после ...

0 голосов
/ 18 января 2012

Может быть, вы найдете этот обзор из документации gfortran полезным. Есть две библиотеки, которые пытаются предоставить доступ к функциям POSIX и более широкой коллекции flib.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...