フォルダ名だけを取得したい時に出てくる 「.」 と 「..」 とは?

以前お話ししました

フォルダ内のフォルダ名全てをGetAttrを使って「エラー53 ファイルが見つかりません。」を出さずに取得(Excel VBA)

の続編です。

GetAttrとは?「= vbDirectory」ではなく「And vbDirectory」となるビット演算の疑問

で、フォルダ属性のものだけ取り出せるようになったから、安心(#^.^#)

と、思っていたらもう一つ壁が・・・

この「.」と「..」ってナニ???何かの暗号???ウイルス????

実は「.」とは自分自身のいるカレントフォルダ、「..」はカレントフォルダの一つ上の階層のフォルダのことを指しているんです。

今回の処理では

buf = Dir(pt & "\" & "*.*", vbDirectory)

「pt=C:\VBA\第一階層」としているので

「.」は「C:\VBA\第一階層」自分自身のフォルダ

「..」は「C:\VBA」一つ上の階層のフォルダ

となります。

そんなん必要ないね~~ん!!ということで

If buf <> “.” And buf <> “..” Then

という処理が必要になるのです。

サブフォルダ名だけが欲しかった今回のミッション。えらい苦労しましたね。

【参考】
指定したフォルダ内のファイル名全てを取得(Excel VBA)
変数でよく使われる「buf」「tmp」の意味
Dir関数が取得するファイルの順番
フォルダ内のフォルダ名全てをGetAttrを使って「エラー53 ファイルが見つかりません。」を出さずに取得(Excel VBA)
GetAttrとは?「= vbDirectory」ではなく「And vbDirectory」となるビット演算の疑問
指定したフォルダ内とサブフォルダ内全てのファイル名を取得(Excel VBA)
CreateObject(“Scripting.FileSystemObject”) を使ってサブフォルダを取得
再帰処理とは?フォルダ内とサブフォルダ内全てのファイル名を取得(Excel VBA)
参照渡し「ByRef」と値渡し「ByVal」の違い(Excel VBA)

■スポンサーリンク

■ランキングに参加しています。
↓このブログを気に入っていただけましたら、ポチッとお願いします。
にほんブログ村 IT技術ブログへ
にほんブログ村