• ベストアンサー

VBでの、パスの存在確認

お世話になっています。 つまらない質問で申し訳ないのですが、 例えば、取得したパスが"C:\TEST\TEST2\"だったとします。 実際に上記パスが存在するのかを確認(判定)したいのですが、よい方法はないでしょうか!? ファイルの場合はFileExistsで確認できるようですが、パスについてもなにかご存知の方がおりましたらご回答願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 やり方はいろいろありますが、2つほど紹介します。 1.Dir関数を使用する If Len(Dir(Path, vbDirectory)) = 0 Then   MsgBox "存在しない" Else   MsgBox "存在する" End If ただし、この場合は、PathがファイルのフルパスでもOKになってしまうので、さらにGetAttr関数で確認して下さい。 2.Win32APIを使用する 宣言部に、 Private Declare Function PathIsDirectory Lib "SHLWAPI.DLL" Alias "PathIsDirectoryA" (ByVal pszPath As String) As Boolean と宣言しておき、 If PathIsDirectory(path) Then   MsgBox "存在する" Else   MsgBox "存在しない" End If このAPI関数の載っているサイトです。 http://plaza5.mbn.or.jp/~heropa/vb122.htm#PathIsDirectory

参考URL:
http://plaza5.mbn.or.jp/~heropa/vb122.htm#PathIsDirectory
masaichi1212
質問者

お礼

ありがとうございます。 二通りも考えていただき感謝しております。 上記1番の方法でテストしたところ、これが簡潔で使いやすいと思いましたので 使わせていただくことにします。 ありがとうございました!

その他の回答 (1)

  • fuji1
  • ベストアンサー率29% (109/371)
回答No.1

こんにちは。 Dir 関数を使ってみたらどうでしょうか? 詳細はヘルプでどうぞ。

masaichi1212
質問者

お礼

ありがとうございます。

関連するQ&A

  • [VB2008]ファイル存在確認について

    質問です。VB2008を使ってる者ですが、以下のソースが分りません。 例で言います。 最初に以下のファイル存在を確認します。 C:\TEST\test1.txt C:\TEST\test2.txt C:\TEST\test3.txt 全て存在する ここまでは良いのですが、この後 例えば C:\TEST\test1.txt C:\TEST\test2.txt C:\TEST\test3.txt C:\TEST\test4.txt ←これ(これ) ファイルの存在確認で同じフォルダ("TEST")に 存在確認の必要としない不要ファイル("これ")を検出して 削除したいのですが、方法が分りません。 "これ"の不要ファイルの名前は、必ずしも"test4"では無い 存在チェック以外の不要ファイルを削除したいのです。 Dim checkFile As String = "C:\Work\Test.txt" If System.IO.File.Exists(checkFile) Then Console.WriteLine("ファイルが存在します") Else Console.WriteLine("ファイルが存在しせん") End If 上記の後、必要の無いファイルを検出して削除するには どうすれば良いでしょうか? 凄く困ってるので、教えて下さい

  • [asp/vbs]FileExistsのパスの指定方法について教えて下

    [asp/vbs]FileExistsのパスの指定方法について教えて下さい。 下記のような記述をした場合、インターネット上にファイルは存在しているのに 「無し」と判断されてしまいます。("ファイルがありません"と表示される) 表示されるという事はasp自体は動いているのでしょうが、肝心のパスの設定が わからない状態です。 <%@ Language=VBScript %> -------中略------- <% Set objFso = Server.CreateObject("Scripting.FileSystemObject") If objFso.FileExists("image/test.jpg") Then Response.Write "ファイルが存在します" End If Response.Write "ファイルがありません" %> このaspファイルが置かれているディレクトリ上にtest.jpgを置き、 If objFso.FileExists("test.jpg") Then と記述しても、やはり"ファイルがありません"と表示されてしまいます…。 また、フルパス(http://www~~test.jpg)と表示しても駄目でした。 おそらく根本的な問題だとは思うのですが、 どのように表記したら良いか、教えて頂けると助かります。

  • ファイルの存在確認をしたい

    複数のドメインを運用しています。 ドメインが違うため、同じレンタルサーバーの会社ですが、サーバーのマシンも別でファイル管理も別々の状態です。 つまり完全に他人同士のドメインという状態ではありますが、他ドメインのファイルが存在するか確認する方法を教えてください 同一ドメイン内であれば、相対パスでstatの[7]とか-fでファイル確認できるようですが、試しに絶対パスを入れてみましたが予想通りというか何も返ってきません。 ファイルサイズであったり、中身の取得は必要ありません。 単にファイルが存在するかどうかだけ確認できればいいのですが、ドメインを分けてしまっているために相対パスが使えません。 書きながら思いましたが、他サイトのファイルの存在確認となると悪用できるかもしれないので、やはりこういったものは存在しないのでしょうか。 とはいっても制限されているURL内のファイル確認ではなく普通にインターネットで閲覧できる状態のものを確認したいだけなのですが

    • ベストアンサー
    • Perl
  • FileExitsについて

    ファイルの存在を確認する方法として"FIleExists"がありますが、 あれはローカルのディスクにしか使用できないのでしょうか? ネットワークドライブ内のファイルを調べようとしたのですが、うまく行きません。 調べたいファイルのパスは正しく取得できていますし、もちろんそのパスにファイルは存在します。 使用が可能なのか不可なのかと、もし不可なら他の方法も教えていただければと思います。

  • ディレクトリの存在有無の確認方法

    VB6を使っています。 ファイルの存在有無はFileSystemObjectを使って以下のような方法で確認しいますが、ディレクトリの存在有無はどのようにすれば、確かめられるでしょうか? Dim objFileSys As Object Set objFileSys = CreateObject("Scripting.FileSystemObject") If objFileSys.FileExists("C:ABC.XYZ") Then よろしくお願いします。

  • ThisWorkbook.Pathについて

    Excel2007のテンプレートファイルxltmでThisWorkbook.Path を利用する場合、ネットワークドライブでのディレクトリを 取得できません。ローカルディレクトリでは問題がありませんが、 なにか設定が必要でしょうか。 computerA:\c:\testの場合  curD = ThisWorkbook.Pathはc:\\testしか取得できません。 ご教授をお願いします。 どうぞ、よろしくお願いします。

  • VBSを利用して、ファイル名を取得

    VBSを利用して、ファイル名を取得 はじめまして VBSを利用して、ファイルのフルパスを取得したいと思っております。 具体的には、フォルダ内のファイルを1ファイルずつ取得するようなプログラムを 作成したいと思っております。 C:\TEST \2010 \aaa.csv C:\TEST \2010 \bbb.csv C:\TEST \2009 \ccc.csv C:\TEST \2008 \ddd.csv C:\TEST \2008 \eee.csv フルパスを取得したいのですが、どのようにしたら良いでしょうか。 最終的には、上記の読み込んだファイルごとにファイルの中身を1行ずつ確認して、 特定の文字が含まれているか確認をするようなスクリプトにしようと思っております。 そのため、objFS.OpenTextFile("取得フルパス",ForReading)のようにして 取得したフルパスごとに読み込みをしようと思っております。 どなたか、お手数ではございますが、ご教授願います。

  • VB6.0フォルダの存在をチェックするには?

    Win2000prosp4,VB6.0sp6で指定したフォルダがあるかどうかチェックするにはどうすればよいでしょうか? Dir関数を使えばよいかなと思ったのですが、ヘルプには「パターンと一致するフォルダ名を大文字で戻り値として返す」 とあるのに例えば Msgbox Dir("c:\test") としても表示されるのは""となってしまいます。 フォルダ名の指定の仕方がまずいのかと思い Msgbox Dir("c:\test\") としてみると今度はtestフォルダ内のファイル名が戻り値となってしまいます。 引数がファイル名ならきちんと存在を判定できるのですが、フォルダだとどうすればよいのでしょうか?

  • 【VB6】ファイル保存:同名パスがあったら[自動的に数字]をつけて保存させたい

    お世話になっております。 VB6(visual basic 6)プログラムからファイルをパスを指定してセーブする際、既にその指定のパスのファイルが存在していた場合、に自動的に数字をつけてセーブしたいです。 パスc:\aru_path.xlsでセーブしたいとき、もしすでにc:\aru_path.xlsが存在していた場合、 c:\aru_path_1.xlsとかc:\aru_path(1).xlsのように自動で末尾に数字がつくようにしたいです。 そのとき、 oApp.ActiveWorkbook.DisplayAlerts = False とか手段は何でも良いのですが、自動運転の途中での事なので、自動的に処理が進む意味で、メッセージが出て中断しないようにしたいです。 EXCEL:EXCEL 2000 OS: win XP なお、ファイルが存在しているがどうかを調べる方法は知っております。(Dir関数でファイルの存在確認) 知りたいのは、windowsの機能(?)などで自動で パス末尾にaru_path(1),aru_path(2),aru_path(3)...と付くようにして保存させたいということです。 言い換えれば、末尾数字が今いくつかをプログラム上保持しておきたくないということです。 もし万が一そういうことができないのであれば、別のことを考えるようにしますので教えてください! ちなみにWINDOWSの機能にあるのかなと勝手に想像した理由:同じフォルダで、ファイル選択&コピペすると、自動で「コピー~。。。」と保存してくれる。 どうぞよろしくお願いいたします。

  • [VB6]指定されたファイルまでのパスを取得

    Microsoft VisualBasic 6.0(SP6)を使用しています。 例えばテキストボックスに、ユーザが任意のファイル名を入力します。 そこで入力されたファイルまでのパスを取得して、 変数「test」に代入しFunctionに引き渡すというような処理をしたく思っています。 実際にこのような処理は可能でしょうか? なにか良い知恵があればご教授お願い致します。

専門家に質問してみよう