2016-06-18 4 views
0

でディレクトリを開く。これは私のコードです:の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 

どうNum_Ber拡張子を持つフォルダResultを開くには? たとえば、Num_Berが56の場合、フォルダ:Result_56を開きます。 このフォルダは以前に開かれたalredyであり、このサブルーチンの実行を停止したいのですか:Call execute_command_line

+0

関連タグを使用してください。ご質問はほとんど表示されませんでした。あなたの現在のプログラムは何をしていますか、何が間違っていますか?そして、cpnfirm、ypu(プログラマーのディレクトリと呼ばれる)ファイルまたはファイルを開いていますか?フォルダを開くことはできません。現在のディレクトリはフォルダに移動することしかできません。 –

+0

プログラムを起動するときに、このフォームでディレクトリを開きたいとします: 'Result_Num_Ber'。このフォルダが存在する場合、プログラムは' execute_command_line(trim(adjustm(fmt_3))) 'を呼び出してジャンプし、次のステップではディレクトリこの形式は 'Output_Num_Ber'です。 どうすればいいですか? –

+0

ディレクトリを開くようなものはありません。このような操作は単に存在しません。ディレクトリ内のファイルを開くことができます。 –

答えて

1

短い答え: 何がやりたいことはオプション-pfmt_3

Character(Le),parameter::fmt_3='mkdir -p Result' 

の定義を変更することで、それが存在する場合、それは何も存在しないとしていない場合は、mkdirは、ディレクトリが作成されます。

長い答え:

あなたの問題の説明に基づいて、本来の問い合わせ機能は、あなたがやりたいのに使用することができます。 fileNameがあなたのディレクトリへのパスを含む文字列変数であるとexistStatusは論理変数で、ディレクトリが存在するか.false.ない場合場合existStatus.true.を返します。次の文

inquire (file=fileName, exist=existStatus) 

ディレクトリを開くときに、あなたが言っていることを意味するわけではないと思います。ディレクトリを使いこなすことは望ましくありません。ファイルシステム内のディレクトリはコンテナであり、そのコンテナの内部をオペレーティングシステムに残し、システムが提供するインタフェースを使用したいとします。

  • ディレクトリを作成します。
  • ディレクトリの内容を一覧表示します。
  • ディレクトリにファイルを作成します。
  • ディレクトリからファイルを削除します。
  • など

それが存在しない場合は今すぐディレクトリが存在するかどうかを問い合わせた後、あなたはそれを作成することができます。

inquire (file=fileName, exist=existStatus) 
if(.not.existStatus)then 
    !the code to create the directory here 
end if 

それはあなたが達成したいものすべてがある場合は、MKDIRのオプション-pを使用することができます。 mkdir -p dirPathディレクトリが存在しない場合は作成し、存在する場合は何もしません。

関連する問題