• ベストアンサー

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

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

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

FileSystemObjectのFolderExistsメソッドで確認できると思います C:\Workの場合 if objFileSys.FolderExists("C:\Work") then といった具合で確認できると思います プロジェクト > 参照設定で『Micosoft Script Runtime』にチェックをつけてOK F2キーで オブジェクトブラウザを表示させます 調べたいオブジェクトまたはメソッドやプロパティをコンボボックスに入力して検索してみましょう VB6付属の MSDNなども活用しましょうね

MusaGoro
質問者

お礼

redfox63さん、お礼が遅れ失礼しました。 .FolderExistsでちゃんと確認できました。 >VB6付属の MSDNなども活用しましょうね 先日、別の質問にご回答頂いた際にも同じアドバイスをされたのですが、つい他力本願になってしまいました。 これからも、よろしくお願いします。

その他の回答 (1)

回答No.1

http://msdn2.microsoft.com/ja-jp/library/system.io.directory.exists(VS.80).aspx System.IO.Directory.Existsメソッド Public Shared Function Exists (path As String) As Boolean でどうですか?

MusaGoro
質問者

お礼

izayoimizukiさん、お礼が送れ失礼しました。 参考にさせて頂きます。

関連するQ&A

  • CreateObjectでエラー

    VB初心者です。 VB6で以下のコードのCreateObjectがエラー になってしまいます。 何が原因と考えられますか? Dim objFileSys As Object CheckFileExist = False 'ファイルの有無を確認する Set objFileSys = CreateObject("Scripting.FileSystemObject")   ↑   ここで、エラーが発生 CheckFileExist = objFileSys.FileExists(S_strFileFull) Set objFileSys = Nothing   エラーメッセージが   「オートメーションエラーです。    ライブラリが登録されてません。」   と出てしまいます。何が原因と考えられますか?   よろしくお願いします。

  • ファイルの有無を判定してからリンクをはりたい

    EXCELで、 Function isFileExist(Filename As String) As Boolean Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") If FSO.FileExists(Filename) Then isFileExist = True Else isFileExist = False End If End Function という自作の関数を標準モジュールにVBAでつくっておき、 セルに =IF(isFileExist("aaa.pdf"),HYPERLINK("aaa.pdf","ファイルを見る"),"ファイルはありません") と書いて、ファイルがある場合だけリンクをはるようにしようとしました。 ところが、ファイルがない場合でも、セルをクリックすると、 「指定されたファイルを開くことができません」と出てきてしまいます。 どうしてなのかわかる方がいましたら教えてください。

  • エクセルマクロで

    エクセルマクロでファイルの有無を確認したくて 次のようなマクロを作りました。 Dim fso Const Folder = "D:\AAA" Const File = "*****.xlsx" Set fso = CreateObject("Scripting.FileSystemObject") If fso.FileExists(Folder & "\" & File) = False Then MsgBox "ファイルは存在しません" ファイル名の*****部分に Range("A1").Valueを使いたいのですがうまくいきません。 どのようになるのでしょうか。よろしくお願いします。

  • フォルダの中に本日付けのフォルダが存在するか確認し、

    フォルダの中に本日付けのフォルダが存在するか確認し、 存在した場合メッセージをだしたいのですが、実際存在するのに もかかわらずメッセージが表示されません。 ちなみにシートのD1にDATE関数が入っています。 If (fFso.FolderExists(DirPathad) = True)のTrueをFalseにすると メッセージが表示されます。 ・・ですが実行させてDirPathadにカーソルをもってくると2010612のように フォルダ名が表示されます。 何がおかしいのでしょうか? Dim fFso As Object Dim DirPathad As String DirPathad = Year(Range("D1")) & Month(Range("D1")) & Day(Range("D1")) Set fFso = CreateObject("Scripting.FileSystemObject") If (fFso.FolderExists(DirPathad) = True) Then MsgBox "本日付けのフォルダが存在します。" Set fFso = Nothing      End IF

  • DOS の BAT処理について

    お世話になります。 下記のようなBATを見よう見まねで作りました。 私が作りたいのは、「製品情報.xls」と言うファイルの更新日を見て 更新日が今日であったら、メッセージ「同じ日付です。」を表示したい だけなのです。 現状では、ファイルの更新日と今日の日付が同じなのに、何故か メッセージが出てこないのでしょうか? お忙しいとは思いますが宜しくお願い致します。 Option Explicit Dim objFileSys Dim strScriptPath Dim strFilePath Dim objFile Dim strDate Dim hizuke2 dim hizuke 'ファイルコピー用------------------------------------ Dim fso, TargetFolder, MyFile, filename Set fso = CreateObject("Scripting.FileSystemObject") 'ファイルコピー用------------------------------------ Set objFileSys = CreateObject("Scripting.FileSystemObject") Set objFile = objFileSys.GetFile("\\10.20.32.21\共有\製品情報.xls") hizuke = Date hizuke2 = Left(objFile.DateLastModified,10) WScript.echo "最終アクセス日:" & hizuke2 & " " & "今日:" & hizuke if hizuke = hizuke2 then WScript.echo "同じ日付です。"

  • VBA SFO C:\Windows

    Cドライブには、 IntelもWindowsのどちらのフォルダも存在するのに Sub Sample() Dim myFSO As Object Debug.Print CreateObject("scripting.filesystemobject").GetFolder("C:\Intel").Size Debug.Print CreateObject("scripting.filesystemobject").GetFolder("C:\Windows").Size Set myFSO = Nothing End Sub をVBAで実行すると \Windows の方だけエラーになります。 エラー内容は 実行時エラー 70 書き込みできません。 です。 何故でしょうか?

  • [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)と表示しても駄目でした。 おそらく根本的な問題だとは思うのですが、 どのように表記したら良いか、教えて頂けると助かります。

  • VBSバックアップ

    バックアップスクリプト(VBS)について教えて下さい。 単純にディレクトリをバックアップするスクリプトは、出来たのですが これに付加機能を与えたいです。 ◆世代管理をしたい。 ◆iniファイルから、バックアップ元と先、管理する世代等の情報を読み込みたい。 <bkup.vbs> Option Explicit Const ForReading = 1 '読み込み Const ForWriting = 2 '書きこみ(上書きモード) Const ForAppending = 8 '書きこみ(追記モード) Dim objFileSys Dim objShell Dim strCopyFrom Dim strCopyTo Dim strToDir Dim strNewDate WScript.echo "バックアップを開始します" Set objFileSys = CreateObject("Scripting.FileSystemObject") Set objShell = CreateObject("WScript.Shell") strNewDate = Year(Now) & _ Right(("0" & CStr(Month(Now)+0)),2) & _ Right(("0" & CStr(Day(Now)+0)),2) strCopyFrom = "C:\vbs" strToDir = "C:\backup" strCopyTo = objFileSys.BuildPath(strToDir,strNewDate) If objFileSys.FolderExists(strCopyTo) = True then WScript.echo "指定のパスには既にディレクトリが存在する為、" & _"バックアップ処理を中断します。" WScript.Quit Else objFileSys.CopyFolder strCopyFrom,strCopyTo WScript.echo "バックアップ処理は正常に完了しました。" End If Set objFileSys = Nothing Set objShell = Nothing 宜しくお願い致します。

  • EXCEL「Dictionaryオブジェクト」宣言

    EXCEL VBAにて Dictionaryオブジェクトを利用しようと思い ネット検索して調べていると・・・ 1)Dim MyDic As Object Set MyDic=CreateObject("Scripting.Dictionary") 2) Dim MyDic As Scripting.Dictionary Set MyDic = New Scripting.Dictionary 3) Dim MyDic Set MyDic=CreateObject("Scripting.Dictionary") 4) Dim myDic As New Scripting.Dictionary 上記の4パターンが出てきました。 いずれも「連想配列」を使うものなのですが、 オブジェクト型、バリアント型、Newキーワードで宣言・・・ 4つの違いがイマイチ理解できません。 違いを教えてください。

  • 再帰処理でアクセス禁止フォルダが存在した際の対応

    こんにちは。 ファイルの一覧を表示するモジュールを作成しました。 その際、アクセスが禁止されるフォルダ(何かのきっかけで 作成されたフォルダ。削除できません。)があった場合、 For Each subfolder In folder.SubFoldersの行で、 「書き込みできません」で停止してしまいます。 このフォルダを削除しないで(存在させたままで)処理を継続 することは可能でしょうか? よろしくご教授願います。 Dim fso As Object Dim folder As Object Dim subfolder As Object Dim file As Object Set fso = CreateObject("Scripting.FileSystemObject") Set folder = fso.GetFolder(strTargetDir) For Each subfolder In folder.SubFolders FolderSearch subfolder.Path Next subfolder For Each file In folder.Files With file Debug.Print .Path End With Next file

専門家に質問してみよう