ファイル選択ダイアログの作成 その2
Ruby/Qteの勉強 昨日のつづき
シンボリックリンクを介したディレクトリ移動で親ディレクトリに戻るときに上手くいかない件について、よくよく考えたらディレクトリを移動する度にDir.pwdでパス情報を新規に取得しているから上手くいかないことに気がついた。そこでDir.pwdの代わりにFile.joinとFile.splitを使用して今までのパス情報に追加/削除して新しいパス情報とするように、メソッドselectFileを修正。
def selectFile(item) if !item.nil? then @file = item.text(0).local8Bit.to_str pwd1 = File.join(@pwd, @file) if @file == ".." then #親ディレクトリへ移動 @pwd = File.split(@pwd)[0] Dir.chdir(@pwd) listFile(@pwd) @file = nil elsif File.directory?(pwd1) then #子ディレクトリへ移動 Dir.chdir(pwd1) @pwd = pwd1 listFile(@pwd) @file = nil else @ebox.setText(tr(@file)) #ファイル選択時 end end end