在Fortran中列出目录的内容

Ste*_*ini 0 fortran fortran95

如何获取Fortran 95中目录的内容?

jan*_*neb 6

迂腐,你不这样做。Fortran 95 中没有任何内在函数或类似内容可以帮助您。

在 POSIX 系统和最新的 Fortran 编译器上,您可以使用 ISO_C_BINDING 创建 POSIX opendir() 和 readdir() 函数(如果需要线程安全,则为 readdir_r())的接口,这允许您迭代目录条目。

  • 除了数字相乘之外,这种语言是否允许做任何有用的事情? (7认同)
  • 作为比较,您能否指出在 C 或 C++ 标准中哪里可以找到列出目录内容的功能? (7认同)
  • 人们会期望对于这样一个时代的语言来说,有一个开箱即用的标准库可以用于这种琐碎的操作。 (6认同)

use*_*139 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)
Run Code Online (Sandbox Code Playgroud)

!写(动词,'(a)')trim(stationFileNames(i))end do close(31)