如何在Fortran 95中获取目录的内容?
答案 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集合的访问。