« IEやExcelなど、PATHにないアプリを起動するバッチやショートカットの作り方 | トップページ | ファイルのリネーム、大文字/小文字の変更は? »

2007年2月12日 (月)

Folder.TitleやFolderItem.Nameはファイル名と違って一意ではありません。

ファイル名は一意ですが、Folder.TitleやFolderItem.Nameは一意ではありません。
「フォルダオプション」-「表示」の「登録されている拡張子は表示しない」や
拡張子/ファイルタイプのNeverShowExt値に依存して拡張子が表示されないことがあり、
それに依存して、Folder.TitleやFolderItem.Nameで重複が発生します。

NeverShowExt値は、ショートカットなどに付いています。
なので、通常、.lnkや.urlは表示されません。
つまり、hoge.txt.lnkとhoge.txtは共にhoge.txtと表示されます。

Set FolderItem=Folder.ParseName(ファイル名)
または、
Set FolderItem=Folder.Items.Item(ファイル名)
で、一意にFolderItemが特定できます。
違いは、見つからないとき、前者がNothing、後者がエラーになります。

FileName=FileSystemObject.GetFileName(FolderItem.Path)
または、
FileName=Mid(FolderItem.Path,InStrRev(FolderItem.Path,"\")+1)
で、ファイル名が取り出せます。

« IEやExcelなど、PATHにないアプリを起動するバッチやショートカットの作り方 | トップページ | ファイルのリネーム、大文字/小文字の変更は? »