在Fortran中列出目录的内容

时间:2012-01-17 10:06:17

标签: fortran fortran95

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

4 个答案:

答案 0 :(得分: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)

!写(动词,'(a)')trim(stationFileNames(i))       结束了       关闭(31)

答案 1 :(得分:3)

要迂腐,你不要。 Fortran 95中没有固有的东西可以帮助你。

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

答案 2 :(得分:2)

Fortran中没有目录的概念。它读取文件。 (有些处理器甚至没有目录概念。)

话虽如此,最简单的方法是使用SYSTEM。取决于你想要的东西...

答案 3 :(得分:0)

也许您从gfortran文档中发现this overview有用。 有两个库,它们试图提供对那里POSIX函数和更广泛的flib集合的访问。