C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ファイル読み込み順の指定方法


(過去ログ 28 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■13107 / inTopicNo.1)  ファイル読み込み順の指定方法
  
□投稿者/ リバー (6回)-(2008/01/24(Thu) 13:54:18)

分類:[VB.NET/VB2005] 

いつもお世話になっております。
リバーと申します。

VB.NETにてあるディレクトリに格納されているファイル名を
GetFiles(指定したディレクトリのパス, "ファイルの種類")で
取得し、配列に格納しています。
この場合、ファイル名の取得順はファイル名の昇順になっていると思います。

現在、ファイル名の昇順を更新時間の昇順に変更したいと考えていますが
簡単に実現する方法が思いつきません。
(設定変更不可の場合は、ファイル名と更新時間を構造体配列に保持し、
 並び替えをする考えでいます。)

ファイル読み込み順の指定方法を
ご存知の方がいらっしゃいましたらご教授願います。



引用返信 編集キー/
■13108 / inTopicNo.2)  Re[1]: ファイル読み込み順の指定方法
□投稿者/ Hongliang (230回)-(2008/01/24(Thu) 14:15:14)
> VB.NETにてあるディレクトリに格納されているファイル名を
> GetFiles(指定したディレクトリのパス, "ファイルの種類")で
> 取得し、配列に格納しています。
> この場合、ファイル名の取得順はファイル名の昇順になっていると思います。

どの GetFiles を使ってるのかにもよりますが、例えば System.IO.Directory の GetFiles だと
> 返されるファイル名の順序は保証されません。
とはっきり書かれています。ファイル名順とは限りません。
// 今の .NET の実装だと多分ファイルシステムのディレクトリエントリ順になるはず。NTFS だと名前順にエントリされます。

> 現在、ファイル名の昇順を更新時間の昇順に変更したいと考えていますが
> 簡単に実現する方法が思いつきません。
> (設定変更不可の場合は、ファイル名と更新時間を構造体配列に保持し、
>  並び替えをする考えでいます。)
はい、自分でソートしてください。前述の Directory.GetFiles の解説にも
> 特定の並べ替え順序が必要な場合は、Sort メソッドを使用します
と書いてますし。
// あ、VS2008 なら LINQ と匿名型の出番?
引用返信 編集キー/
■13113 / inTopicNo.3)  Re[2]: ファイル読み込み順の指定方法
□投稿者/ リバー (7回)-(2008/01/24(Thu) 16:46:15)
Hongliang さん
回答ありがとうございます。

>>特定の並べ替え順序が必要な場合は、Sort メソッドを使用します
> と書いてますし。
Sortメソッドを使用し、簡単にソートすることが出来ました。

私が作成していた構造体配列は2項目×配列要素数でしたので
一旦1次元配列に格納し、
以下のように
Array.Sort(1次元配列(1列目)、1次元配列(2列目))
と記述したところ正しく動作しました。

ありがとうございました。



解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -