这是我的代码:
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
哪种解决方案好?
如何检查具有该名称的文件夹是否已打开?如果没有必要执行这段代码。
答案 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和错误...然后手动创建目录并重新运行程序。
同样的故事"做什么"如果目录或文件没有写入权限..."查克并错误并重新组合。"