• 締切済み

ディレクトリパスの取得について

いつもお世話になっております。 VB6.0開発を行っております。 今回は、ChDirについて教えていただきたいのですが。 アプリの実行ディレクトリのひとつ上の階層のディレクトリパスを取得したいのですが、どのようにするのが最良の方法でしょうか? App.Pathで実行ディレクトリは取得できるのですが、そのひとつ上の階層のディレクトリはどのように取得すればいいのでしょうか。 システムの中で、ひとつ上のディレクトリをカレントディレクトリに設定したいのですが、よろしくお願いします。

みんなの回答

回答No.4

Private Sub Command1_Click() Label1.Caption = Left(App.Path, InStrRev(App.Path, "\") - 1) End Sub で、いかがでしょう?

  • sam_inoue
  • ベストアンサー率47% (27/57)
回答No.3

こんにちは。 FileSystemObjectを使ってはいかがですか。 [参照設定:Microsoft Scripting Runtime] Dim FSO As New FileSystemObject MsgBox FSO.GetAbsolutePathName("../") [実行時バインド版] Dim FSO Set FSO = CreateObject("Scripting.FileSystemObject") MsgBox FSO.GetAbsolutePathName("../") 現在パスが既に取得できている場合は、 MsgBox FSO.GetParentFolderName(strCurDir) でも良いと思います。

  • pochi_won
  • ベストアンサー率38% (15/39)
回答No.2

こんな感じでは・・・ Private Sub Command1_Click() Dim PathChr As String Dim ChrA As String Dim A As Integer Dim B As Integer PathChr = App.Path '現在のパスを取得 Text1.Text = PathChr '現在のパスを表示 A = Len(PathChr) 'パスの文字列数を取得 For B = A To 1 Step -1 'パスを右から順番に1文字づつ検索 ChrA = Right(Left(PathChr, B), 1) If ChrA = "\" Then GoTo aaa '¥を見つけたらループから抜ける Next aaa: ChrA = Left(PathChr, B - 1) '¥を見つけた長さ-1の文字列を作る Text2.Text = ChrA '1つ上の階層を表示 ChDir ChrA 'ChDir実行 PathChr = App.Path '実行後のパスを取得 Text3.Text = PathChr '実行後のパスを表示 End Sub

回答No.1

Visual Basic は使ったことがないので、詳細はわかりませんが……。 通常、あるディレクトリの親ディレクトリは、 .. で参照できます。 c:\a\b\c というディレクトリに対して、 c:\a\b\c\.. というディレクトリは仮想的に、c:\a\b を表します。 chdir .. で、カレントディレクトリを親ディレクトリにすることも出来ます。

hiko758
質問者

お礼

早速ありがとうございます。 試してみます。

関連するQ&A