【发布时间】:2012-01-17 10:06:17
【问题描述】:
如何在 Fortran 95 中获取目录的内容?
【问题讨论】:
-
你是什么意思“我必须填充它,否则它不会通过”。你试过什么了。将目录的内容打印到屏幕上是否足够,还是需要将文件列表存储在变量中?
-
@Chris :我指的是问题本身,太短以至于无法被 SO 接受。
如何在 Fortran 95 中获取目录的内容?
【问题讨论】:
如果我们在“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)')修剪(stationFileNames(i)) 结束做 关闭(31)
【讨论】:
要学究气,你不会。 Fortran 95 中没有内在的或类似的东西可以帮助你。
在 POSIX 系统和最近的 Fortran 编译器上,您可以使用 ISO_C_BINDING 创建 POSIX opendir() 和 readdir() 函数(或 readdir_r(),如果您需要线程安全)的接口,这允许您迭代目录条目。
【讨论】:
因此,Fortran 中没有目录的概念。它读取文件。 (有些处理器甚至没有目录的概念)。
话虽如此,最简单的方法是使用 SYSTEM。之后取决于你想要什么......
【讨论】: