本帖最后由 kyra 于 2020-4-10 08:07 编辑
打算在当前目录下的2003336的文件夹下打开一个名称为data.txt的文件并输入单个整型数据500
编程思路如下,判断在当前目录下是否存在2003336文件夹,如果存在2003336文件夹屏幕输出 'the file exist'
如果不存则屏幕输出'the file no exist and will be created'并创建该文件夹
接下来改变当前目录到2003336文件夹
最后打开文件data.txt写入整型数据500
程序结束
程序结果勉强可以接收,但存在一些问题:
(1)不论程序运行几次,标识文件夹2003336是否存在的数据istat始终===0,很显然不对呀?????
(2)第一次运行程序屏幕输出 'the file no exist and will be created',标识2003336文件夹不存在需要创建,但第二次第三次依然屏幕输出 'the file no exist and will be created' 并且屏幕还有一行
"子目录或文件已经存在"的语句提示。代表2003336文件夹应经存在了,也就是说不需要再次创建2003336文件夹了。这与自己的设定输出'the file no exist and will be created' 又有矛盾了???
(3)又仔细查了一下inquire函数,了解到inquire函数似乎只能查询文件,而不能查询文件夹,请问在fortran中有没有可以查询文件夹是否存在的函数或者判断方法?或者是其他可以实现目的的方法,谢谢了
图片分别表示第一次运行结果和第二次及更多次运行结果的情形
代码如下:
[Fortran] 纯文本查看 复制代码 program main
character elname1*4, elname2*8, folder_name*15,filename*20
integer istat,istat2
real a
write(elname1, '(i4)') 200
write(elname2, '(i8)') 3336
folder_name=trim(adjustl(elname1))//trim(adjustl(elname2))
inquire(file=trim(folder_name), exist=istat)
write(*,*)istat
if (istat) then
print*, 'the file exist'
else
print*, 'the file no exist and will be created'
istat2=system( "Md "//trim(folder_name))
end if
istat2=CHDIR(trim(folder_name)) !改变当前目录到到文件夹
filename='data.txt' !打开写入数据的txt文件
open(308,file=filename,status='replace',form='formatted')
write(308,*) 500
close(308)
end program main
|