こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

再度:VBSで指定したフォルダー内のファイルを書き出さないようにする

先ほども似たような質問をしました。
あるフォルダの中にあるファイル名の一覧をファイル"f.name.txt"を書き出したいのですが"新しいフォルダ"のなかにあるファイルは書き出さないようにしたいです。下記のVBSは"新しいフォルダ"のなかに更にフォルダが階層的に存在するときには"新しいフォルダ"の中のファイルも全て書き出してしまいます。
"新しいフォルダ"の中にフォルダがない場合は正しく動きます。
"新しいフォルダ"の中にフォルダが階層的にあっても"新しいフォルダ"
の中にあるファイル名を書き出さないようにするにはどうしたらよいのでしょう?
**************************************************************
Set FSO = CreateObject("Scripting.FileSystemObject")
Set fl = WScript.CreateObject("Scripting.FileSystemObject")
Set abc = fl.CreateTextFile("f.name.txt")
ShowSubfolders FSO.GetFolder(".")
Sub ShowSubFolders(Folder)
If Folder.Name <> "新しいフォルダ" Then
For Each File in Folder.Files 'Folder内のファイルを列挙する
Fname = File.name
abc.Write Folder & "\" & Fname & vbCrLf
Next
End If
For Each Subfolder in Folder.SubFolders 'Folder内のフォルダを列挙する
ShowSubFolders Subfolder '再帰呼び出し
Next
End Sub
abc.Close

投稿日時 - 2008-07-03 14:17:07

QNo.4148214

暇なときに回答ください

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

フォルダー名による再帰呼び出しをする部分を良く見直してみましょう

フォルダー名で排除されるのは『新しいフォルダ』の直下にあるファイル名のみです
このIF文の後に配置された For Each では『新しいフォルダ』内のサブフォルダーも再帰呼び出しの対象としています

投稿日時 - 2008-07-03 18:02:50

お礼

間違いがわかりました。有難うございます。

投稿日時 - 2008-07-03 18:19:04

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問