dポイントプレゼントキャンペーン実施中!

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

A 回答 (4件)

Private Sub Command1_Click()



Label1.Caption = Left(App.Path, InStrRev(App.Path, "\") - 1)

End Sub

で、いかがでしょう?
    • good
    • 0

こんにちは。



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)
でも良いと思います。
    • good
    • 0

こんな感じでは・・・



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
    • good
    • 0

Visual Basic は使ったことがないので、詳細はわかりませんが……。



通常、あるディレクトリの親ディレクトリは、 .. で参照できます。

c:\a\b\c
というディレクトリに対して、
c:\a\b\c\..
というディレクトリは仮想的に、c:\a\b
を表します。

chdir ..

で、カレントディレクトリを親ディレクトリにすることも出来ます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/09/14 10:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!