プロが教える店舗&オフィスのセキュリティ対策術

現在vbscriptを使用して、ファイルの一覧を降順に並び替えて出力をしたいのですが、
どうしたらいいのかわかりません。
ファイルの一覧は表示できるのですが、ならび変えるにはどうすればよろしいでしょうか?
教えていただけると大変助かります。

一覧表示


Option Explicit

Dim objFileSys
Dim objFolder
Dim objFile

'ファイルシステムを扱うオブジェクトを作成
Set objFileSys = CreateObject("Scripting.FileSystemObject")

'c:\temp フォルダのオブジェクトを取得
Set objFolder = objFileSys.GetFolder("c:\temp")

'FolderオブジェクトのFilesプロパティからFileオブジェクトを取得
For Each objFile In objFolder.Files
'取得したファイルのファイル名を表示
WScript.Echo objFile.Name
Next

Set objFolder = Nothing
Set objFileSys = Nothing

A 回答 (2件)

No.1様のAdodb も良いのですが、簡易的な方法で、.Net Framework のSortedList を使ってみたらどうでしょう。


やってみると、けっこう、小回りが利きます。

それと、同じスタイルにしたかったけれども、検証が面倒なので、
>'取得したファイルのファイル名を表示
>WScript.Echo objFile.Name '個別に出力することになります。
この部分は、Buf に入れ、一覧にすることにしました。

'//
Dim objFileSys
Dim objFolder
Dim objFile
Dim DataLists
Dim i , j, buf
'ファイルシステムを扱うオブジェクトを作成
Set objFileSys = CreateObject("Scripting.FileSystemObject")
Set DataLists = CreateObject("System.Collections.SortedList")
'c:\temp フォルダのオブジェクトを取得
Set objFolder = objFileSys.GetFolder("C\Temp")

'FolderオブジェクトのFilesプロパティからFileオブジェクトを取得
For Each objFile In objFolder.Files
' SortedList に加える
DataLists.Add objFile.Name, i 'i はダミーのIndex
i= i + 1
Next
For j= Datalists.count -1 To 1 Step -1 '降順
'WScript.Echo DataLists.GetKey(j) '一覧にしたいので、以下でBufに入れました。
buf = buf & Chr(13) & DataLists.GetKey(j)
Next
WScript.Echo buf
Set objFolder = Nothing
Set objFileSys = Nothing
Set Datalists = Nothing
    • good
    • 1

VBScriptでファイルの日時順でソートする


http://itemy.net/?p=406
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A