在Fortran中列出目录的内容
如何在Fortran 95中获取目录的内容?要学究的话,你不需要。Fortran 95中没有内在的或类似的东西可以帮助您在Fortran中列出目录的内容,fortran,fortran95,Fortran,Fortran95,如何在Fortran 95中获取目录的内容?要学究的话,你不需要。Fortran 95中没有内在的或类似的东西可以帮助您 在POSIX系统和最新的Fortran编译器上,您可以使用ISO_C_绑定来创建POSIX opendir()和readdir()函数的接口(如果需要线程安全,也可以使用readdir_r()),这允许您迭代目录项。Fortran中没有目录的概念。它读取文件。(有些处理器甚至没有目录的概念) 话虽如此,最简单的方法就是使用系统。取决于您需要什么…舒尔如果我们在“infles”
在POSIX系统和最新的Fortran编译器上,您可以使用ISO_C_绑定来创建POSIX opendir()和readdir()函数的接口(如果需要线程安全,也可以使用readdir_r()),这允许您迭代目录项。Fortran中没有目录的概念。它读取文件。(有些处理器甚至没有目录的概念)
话虽如此,最简单的方法就是使用系统。取决于您需要什么…舒尔如果我们在“infles”文件夹中有所有文件,我们首先确定有多少文件,然后将它们的名称读入数组,查看以下内容:
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)你所说的“我必须将其填充,否则它将无法通过”是什么意思。到目前为止你都试了些什么。将目录的内容打印到屏幕上就足够了,还是需要将文件列表存储在一个变量中?@Chris:我指的是问题本身,太短了,SO无法接受。除了乘法之外,这种语言允许做任何有用的事情吗?为了比较,你能指出C或C++标准中的哪一个可以找到列出目录内容的功能吗?人们会期望这样的平凡操作的标准库可以用于这种年龄的语言。