978142355 发表于 2016-11-22 20:13:59

在一个文件夹中再建立5个文件夹,并在这5个文件夹中放入...

如题。想在某个目录下创建名称叫“0.05”的文件夹,并在此文件夹下再创建5个文件夹,在这5个文件夹中分别写入5个叫data的文件。代码如下:    program example
    use ifport
    implicit none
    integer i
    character(len=56) temp,name
    integer istatus1,istatus2,istatus3,istatus4,istatus5
    name='0.05'
    istatus1=system("Md "//trim(name)) !建立文件夹
   
    do i=1,5
      write(temp,*) i
      istatus2=CHDIR(trim(name)) !定位到上述建立的文件夹的路径
      istatus3=system("Md "//trim(temp)) !在此路径上再建一层文件夹
      istatus4=CHDIR(trim(temp)) !定位到新一层的文件夹
      open(11,file='data')
      write(11,*) i
      
      istatus5=CHDIR("..")
      close(11)
    end do
    read(*,*)
    end program example

然而运行后,却变成了图1所示的问题,即名称叫“0.05”的文件夹下的5个文件夹建成了,但是data文件没有分别放在这5个文件夹中。请教各位,该如何修改?谢谢大家。

fcode 发表于 2016-11-22 20:26:45

见下代码的 !// 注释

program example
use ifport
implicit none
integer i
character(len=56) temp,name
integer istatus1,istatus2,istatus3,istatus4,istatus5
name='0.05'
istatus1=system("Md "//trim(name)) !建立文件夹
istatus2=CHDIR(trim(name)) !//放到循环外面
do i=1,5
    write(temp,*) i
    temp=adjustl(temp) !//左对齐
    istatus3=system("Md "//trim(temp)) !在此路径上再建一层文件夹
    istatus4=CHDIR(trim(temp)) !定位到新一层的文件夹
    open(11,file='data')
    write(11,*) i
    istatus5=CHDIR("..")
    close(11)
end do
read(*,*)
end program example

978142355 发表于 2016-11-22 20:53:40

fcode 发表于 2016-11-22 20:26
见下代码的 !// 注释

program example


拜谢老大,谢谢老大,谢谢QQ群,也谢谢论坛。总能在这里寻求到好的答案,倍感温暖。
页: [1]
查看完整版本: 在一个文件夹中再建立5个文件夹,并在这5个文件夹中放入...