用gfortran打开文件夹

时间:2017-08-08 13:36:05

标签: fortran gfortran

这是我的代码:

Program Write_in_folder

Implicit none

Integer::Num_Ber
Integer,parameter::Le=367
Character(Le)::Output
Character(Le),parameter::fmt_1='("Result\Output_",i0,".txt")'
Character(Le),parameter::fmt_2='(2x,i0)'
Character(Le),parameter::fmt_3='mkdir Result'

Write(*,*)"Enter the number:"
Read(*,*)Num_Ber

Write(Output,trim(adjustl(fmt_1)))Num_Ber

Call execute_command_line(trim(adjustl(fmt_3)))

Open(Unit=1,File=trim(adjustl(Output)),Status='Unknown')

     Write(1,trim(adjustl(fmt_2)))Num_Ber

Close(Unit=1,Status='Keep') 

Stop
End Program Write_in_folder

我想打开名称为Result_Num_Ber

的文件夹

哪种解决方案好?

如何检查具有该名称的文件夹是否已打开?如果没有必要执行这段代码。

1 个答案:

答案 0 :(得分:0)

"如何检查具有该名称的文件夹是否已打开?如果没有必要执行这段代码。"

我喜欢在目录和文件中使用INQUIRE。

CHARACTER(LEN=80)  :: Base_Name
CHARACTER(LEN=80)  :: SomeDirectory
CHARACTER(LEN=256) :: Full_Name
INTEGER            :: Len_SomeDirectory
LOGICAL            :: Existentialism

!....
SomeDirectory = '/data/2017'
Len_SomeDirectory = LEN_TRIM(SomeDirectory)
!...
INQUIRE(DIR=SomeDirectory, EXIST=Existentialism)
IF(Existentialism) THEN
  Full_name = SomeDirectory(1: Len_SomeDirectory) // '/' //   Base_Name(1:LEN_TRIM(Base_Name))
ELSE
  ! Maybe create some directory...
ENDIF
! etc

然后STAT或GETFILEINFOQQ可以深入了解您是否具有写入权限。

如果没有目录,可能最容易/最安全的chuck和错误...然后手动创建目录并重新运行程序。

同样的故事"做什么"如果目录或文件没有写入权限..."查克并错误并重新组合。"