フォルダ内のファイル数を数えたい【特定のファイルのみカウントするには?】

解決


ひっぴ  2006-01-20 05:22:24  No: 129696

フォルダにいくつの画像ファイル(.jpg)が入っているか数えたいです。現在種類関係ないくいくつあるかを知るまでは以下のソースでできました。

*****************
Private Sub Command1_Click()

Dim myFSO As Object

Dim myFolder As Object

Dim myFolderPath As String

'対象のフォルダのパスを指定します。(ここでは仮に"C:\TMP"とします。
myFolderPath = "C:\TMP"

Set myFSO = CreateObject("Scripting.FileSystemObject")

Set myFolder = myFSO.GetFolder(myFolderPath)

MsgBox myFolderPath & " フォルダ内のファイル数は " & myFolder.Files.Count & " です。", vbInformation, "Information"

Set myFolder = Nothing

Set myFSO = Nothing
***********
よろしくお願いいたします。


ひっぴ  2006-01-20 05:25:11  No: 129697

書き忘れました。
開発環境は
VisualBasic  6.0です


杏仁豆腐  2006-01-20 07:09:04  No: 129698

フォルダ内のファイルはフォルダオブジェクトのFilesプロパティで参照できます。
で、全てのファイルについてファイル名の右から4文字をとってきて".jpg"
かどうかを判定すればいいんじゃないでしょうか。

Dir関数を用いて第一引数にワイルドカード"(対象フォルダパス)\*.jpg"を指定し
該当するファイルの数を数えるとかいう方法もありますね。


LESIA  2006-01-20 18:53:36  No: 129699

拡張子がjpgかどうかを調べて、カウントしていくとか。
Dim myFSO As Object
Dim myFolder As Object
Dim myFile As Object
Dim myFolderPath As String
Dim n As Long

'対象のフォルダのパスを指定します。(ここでは仮に"C:\TMP"とします。
myFolderPath = "C:\TMP"

Set myFSO = CreateObject("Scripting.FileSystemObject")

Set myFolder = myFSO.GetFolder(myFolderPath)

n = 0
For Each myFile In myFolder.Files
    If myFSO.GetExtensionName(myFile.Name) = "jpg" Then
        n = n + 1
    End If
Next myFile

MsgBox myFolderPath & " フォルダ内の画像ファイル数は " & n & " です。", vbInformation, "Information"

Set myFolder = Nothing

Set myFSO = Nothing


ひっぴ  2006-01-20 21:00:48  No: 129700

>杏仁豆腐様  LESIA様
ご回答真にありがとうございます。
拡張子を調べてカウントする方法を使わせていただきました。
大変役立ちました。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加