
No.3ベストアンサー
- 回答日時:
前置きが長いですが。
。。「パス」について
http://e-words.jp/w/E38391E382B9.html
頂点から目的のファイルやフォルダまでのすべての道筋を記述するのが「絶対パス」
起点となる現在位置から、目的のファイルやフォルダまでの道筋を記述するのが「相対パス」
他に例えます。
[起点]
私の家の住所は、○○県○○市○○区○○町○○番地です
(自宅住所が起点)
[起点からの道筋を辿った相対パス]
家から、南側に3つ目の交差点があり、そこにA点というコンビニがあります
(南側に3つ目の交差点が相対パス)
[絶対パスを算出]
起点の家から辿って、A点までの経路を考えると、そのA点の住所は、△△県△△市△△区△△町△△番地になります。
(A点住所が絶対パス)
上の例から、相対パスから絶対パスを算出するためには、絶対パスの起点が必要となることがわかると思います。
ここから本題
>実際に存在するパスを検索して取得することは出来ないのでしょうか?
>例:「ABC」というフォルダが「C:\program files」や「D:\」などに存在するという結果です。
私が言いたいことは、#1さんが言われている事と、全く一緒です。
フォルダ名だけで存在チェックをしたいのであれば、起点が無いので、全フォルダを調べなければならないです。
それでもよければサンプルです。
http://okweb.jp/kotaeru.php3?q=1561188
をベースに、.NET用に変換しています。
アクセス権の無いフォルダを参照しようとすると落ちます。
(解析しやすいように、あえてエラー処理を入れていません。)
Option Explicit On
Imports System.IO
Imports System.Text
Module Module1
'-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
Private Const LIST_FILE As String = "C:\FileList.txt" '←ログ出力先
'-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
Private stmWriter As StreamWriter
'-----------------------------------------------
Sub Main()
Const DEF_検索ルート As String = "C:\WINDOWS"
Const DEF_検索フォルダ名 As String = "System32"
Dim l_strWk As String = _
"以下の論理ドライブが存在しています" & vbCrLf & vbCrLf _
& Join(System.Environment.GetLogicalDrives(), vbCrLf) & vbCrLf & vbCrLf _
& "しかし時間がかかるので[" & DEF_検索ルート & "]以下だけを対象にします"
Call MsgBox(l_strWk, MsgBoxStyle.Information)
'ログファイルがあったら抹消
If File.Exists(LIST_FILE) Then
Call File.Delete(LIST_FILE)
End If
'ログファイル準備
stmWriter = New StreamWriter(LIST_FILE, False, Encoding.GetEncoding(932))
'リスト作成メイン実行
Call CreateFileList(DEF_検索ルート, DEF_検索フォルダ名)
'ログファイルクローズ
stmWriter.Close()
'オブジェクト開放
stmWriter = Nothing
MsgBox("終了")
Call System.Diagnostics.Process.Start(LIST_FILE)
End Sub
'-----------------------------------------------
'リスト作成メイン
'-----------------------------------------------
Sub CreateFileList(ByVal p_str起点 As String, ByVal p_str検索フォルダ名 As String)
Dim l_strサブフォルダ As String
'絶対パスを取得
Dim l_str絶対パス As String = Path.Combine(p_str起点, p_str検索フォルダ名)
'存在チェック
If Directory.Exists(l_str絶対パス) Then
'ログに出力
stmWriter.WriteLine(l_str絶対パス)
End If
'パラメータの起点フォルダ以下のサブフォルダ階層をチェックする
For Each l_strサブフォルダ In Directory.GetDirectories(p_str起点)
'サブフォルダで再帰
Call CreateFileList(l_strサブフォルダ, p_str検索フォルダ名)
Next
End Sub
End Module
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- その他(IT・Webサービス) 301リダイレクトの使い方について 7 2022/04/05 17:50
- Excel(エクセル) フォルダAから1つのファイルだけを、フォルダBへを移動するVBAについて 2 2022/07/25 11:45
- その他(コンピューター・テクノロジー) <a href="file:///フォルダ名/ファイル名">リンクテキスト</a>について 1 2023/04/06 22:40
- Visual Basic(VBA) VBAでファイル名を指定して保存するとき 4 2023/03/26 21:55
- Excel(エクセル) 【VBA】フォルダAにある2つのファイルの内1つを、フォルダBへ。もう1つを、フォルダBへ移動したい 6 2022/07/26 08:51
- Excel(エクセル) フォルダAからフォルダBへファイルを移動するVBAについて 1 2022/07/21 22:47
- Visual Basic(VBA) VBSで作成した相対パスのショートカットが他者と共有できません。 1 2022/09/05 11:20
- その他(プログラミング・Web制作) 図に示す階層構造で,現在のディレクトリ(カレントディレクトリという)が*印のディレクトリであるとき, 2 2022/11/16 10:55
- Excel(エクセル) Power Query で取り込むデータのパスを相対パスに出来ませんか? 3 2022/04/05 18:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
C ファイル出力で、フォルダが...
-
デスクトップの画像をhtmlに表...
-
VBAでファイル名を指定して保存...
-
ThisWorkbookがあるフォルダ更...
-
マクロでネットワークドライブ...
-
Windows Python初心者です。 im...
-
(C#)フォルダを指定するダイ...
-
MinGWで正規表現(regex.h)がし...
-
会社のネットワーク上のファイ...
-
バッチファイル フォルダを...
-
【ExcelVBA】一覧表の記載に従...
-
VBScriptでのフォルダ指定ダイ...
-
【マクロ】ファイル名の日付に...
-
Excelで指定したフォルダに保存...
-
カレントフォルダって?
-
VBA 最新のフォルダ取得
-
ExcelVBAでフォルダへのハイパ...
-
フォルダの場所を可変にしたい...
-
フォルダ選択ダイアログ:ネッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
会社のネットワーク上のファイ...
-
ファイル名と同名のフォルダを...
-
デスクトップの画像をhtmlに表...
-
VBA 最新のフォルダ取得
-
VBA フォルダ名に特定の文字を...
-
Access VBA で フォルダ権限...
-
ディレクトリ名変更してコピー...
-
excelマクロ 冒頭3文字が一致す...
-
Excelで指定したフォルダに保存...
-
パス名に2バイト文字(マルチバ...
-
ExcelのVBAでフォルダ指定がで...
-
excel VBA Dirにて検索したフォ...
-
【マクロ】ファイル名の日付に...
-
VBA フォルダの複数選択ができない
-
Excelのハイパーリンクについて...
-
あるフォルダーのファイルを違...
-
C ファイル出力で、フォルダが...
-
フォルダを開いて、閉じるのプ...
-
ThisWorkbookがあるフォルダ更...
おすすめ情報