VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

リンク元へ戻ります。 フォルダー関係のメニュー
1.FileSystemObject のフォルダーに関するメソッド・プロパティについて
2.フォルダーに関する基本的なワンポイントサンプル集
3.フォルダー(ディレクトリ)に関するパス操作色々
4.指定のフォルダーのファイル数・サブフォルダー数・総バイト数を取得
5.指定のフォルダーをエクスプローラーで表示
6.深い階層のフォルダーを一発で作成する
7.ファイル・フォルダーをごみ箱へ
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.その他、当サイト内に掲載のフォルダーに関するサンプル


3.フォルダー(ディレクトリ)に関するパス操作色々
1.特殊フォルダーのパスを取得(FileSystemObject による)
2.特殊フォルダーのパスを取得(WshShell による)
3.カレントフォルダー/プログラムを起動したフォルダーのパスを取得
4.フルパス文字列からディレクトリ名を取得する
5.相対パスから絶対パスを取得する
6.2つのパス文字列を結合する
7.指定のフォルダーのルートドライブ名を取得する

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6)
Option :[Option Explicit]
参照設定:Microsoft Scripting Runtime (scrrun.dll) / Windows Script Host Object Model(wshom.ocx) 参照設定方法参照
使用 API:
なし
その他 :
    :
このページのトップへ移動します。 1.特殊フォルダーのパスを取得(FileSystemObject による)

Private Sub Command1_Click()
  Dim Fso    As New FileSystemObject
  'Windows のパスを取得
  Debug.Print Fso.GetSpecialFolder(WindowsFolder)   'C:\Windows
  'System フォルダーのパスを取得
  Debug.Print Fso.GetSpecialFolder(SystemFolder)   'C:\Windows\System32
  'Temporary フォルダーのパスを取得
  Debug.Print Fso.GetSpecialFolder(TemporaryFolder)  'C:\Users\UserName\AppData\Local\Temp

End Sub

残念ながら、上記3個のフォルダーのパスしか取得できません。

このページのトップへ移動します。 2.特殊フォルダーのパスを取得(WshShell による)

Option Explicit

Private Sub List1_Click()
  Dim oWshShell As New WshShell
  Text1.Text = oWshShell.SpecialFolders(List1.List(List1.ListIndex))
End Sub

Private Sub Form_Load()
  '取得できる特殊フォルダーには下記のようなものがあります。
  List1.AddItem "AllUsersDesktop"
  List1.AddItem "AllUsersPrograms"
  List1.AddItem "AllUsersStartup"
  List1.AddItem "AllUsersStartMenu"
  List1.AddItem "Desktop"
  List1.AddItem "Favorites"
  List1.AddItem "Fonts"
  List1.AddItem "MyDocuments"
  List1.AddItem "NetHood"
  List1.AddItem "Programs"
  List1.AddItem "PrintHood"
  List1.AddItem "Recent"
  List1.AddItem "SendTo"
  List1.AddItem "StartMenu"
  List1.AddItem "Startup"
  List1.AddItem "Templates"
  List1.AddItem "AppData"
  List1.AddItem "Temporary Internet Files"
End Sub

  図1.上記実行結果
 folder03_01.gif
こちらは、上記のように色々なフォルダーのパスが取得できます、それぞれの環境で試して見て下さい。

このページのトップへ移動します。 3.カレントフォルダー/プログラムを起動したフォルダーのパスを取得

Private Sub Command1_Click()
  'カレントフォルダーのパスを取得
  Debug.Print CurDir$               'C:\Program Files\Microsoft Visual Studio\VB98

  'カレントフォルダーのパスを取得
  Debug.Print App.Path              'C:\Program Files\Microsoft Visual Studio\VB98

'------------------------- FileSystemObject での操作 -------------------------
  Dim Fso    As New FileSystemObject

  'アプリケーションの現在の作業ディレクトリを取得
  Debug.Print Fso.GetFolder(".").Path       'C:\Program Files\Microsoft Visual Studio\VB98

End Sub

プログラムの起動直後に取得すればプログラムを起動したフォルダーのパスになります、但し、カレントフォルダーは変更される場合がありますので、必ず起動直後に取得して変数に保存しておいて下さい。

このページのトップへ移動します。 4.フルパス文字列からディレクトリ名を取得する

Private Sub Command1_Click()
'------------------------- FileSystemObject での操作 -------------------------
  Dim Fso    As New FileSystemObject

  'フルパス文字列からディレクトリ名を取得する
  Debug.Print Fso.GetParentFolderName("c:\test\test2\test.txt")  'c:\test\test2

  Debug.Print Fso.GetBaseName("c:\test\test2")          'test2

End Sub

このページのトップへ移動します。 5.相対パスから絶対パスを取得する

Private Sub Command1_Click()
'------------------------- FileSystemObject での操作 -------------------------
  Dim Fso    As New FileSystemObject
  '相対パスから絶対パスを取得する
  Debug.Print Fso.GetAbsolutePathName(".")    'C:\Program Files\Microsoft Visual Studio\VB98
  Debug.Print Fso.GetAbsolutePathName("..\..\")  'C:\Program Files

End Sub

このページのトップへ移動します。 6.2つのパス文字列を結合する

Private Sub Command1_Click()
'------------------------- FileSystemObject での操作 -------------------------
  Dim Fso    As New FileSystemObject

  '2つのパス文字列を結合する
  Debug.Print Fso.BuildPath(Fso.GetAbsolutePathName("..\..\"), "test.txt")  'C:\Program Files\test.txt

End Sub

このページのトップへ移動します。 7.指定のフォルダーのルートドライブ名を取得する

Private Sub Command1_Click()
'------------------------- FileSystemObject での操作 -------------------------
  Dim Fso    As New FileSystemObject

  '指定のフォルダーのルートドライブ名を取得する
  Debug.Print Fso.GetDriveName(App.Path)      'C:

End Sub

このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)





このページのトップへ移動します。