0
私は単純な画像ビューアを作成していますが、私はLastTimeWriteによって画像の並べ替えをしたいと思います。写真をロードするためのOpenFileDialogがあります。フォルダ内の画像を選択すると、ProcessDirectory()が呼び出されます。LastTimeWriteで画像を並べ替え
private void ProcessDirectory()
{
FileTypes = new ArrayList();
FileTypes.Add("*.JPG");
FileTypes.Add("*.JPEG");
FileTypes.Add("*.GIF");
FileTypes.Add("*.BMP");
FileTypes.Add("*.PNG");
FileTypes.Add("*.TIF");
FileTypes.Add("*.TIFF");
string[] szFiles;
FileArray = new ArrayList();
foreach (string szType in FileTypes)
{
szFiles = Directory.GetFiles(Directory.GetCurrentDirectory(), szType);
if (szFiles.Length > 0)
FileArray.AddRange(szFiles);
//switch (SortImg)
//{
// case ("Asc"):
// FileArray.Sort();
// break;
// case("Date"):
string[] MyString = new string[szFiles.Length];
DateTime[] creationTimes = new DateTime[szFiles.Length];
for (int i = 0; i < szFiles.Length; i++)
{
creationTimes[i] = new FileInfo(szFiles[i]).LastWriteTime;
//creationTimes[i].ToString("yyyy-MM-dd HH:mm tt");
}
for (int i = 0; i < szFiles.Length; i++)
MyString[i] = Convert.ToString(creationTimes[i].ToString("yyyy-MM-dd HH:mm tt"));
FileArray.Sort();
listBox1.Items.AddRange(MyString);
FileArray.AddRange(MyString);
...
}
フレッドリックさん、ありがとうございます。あなたの例はうまくいきますが、ソートされた画像を表示する方法がわかりません。FielInfoの日付のみを文字列形式で表示できます。私はpictureBoxに表示されるソートされたファイルの別の配列が、並べ替えられたFileInfosでいっぱいに配列 'ファイル'でこの新しい配列を埋める方法だと思います。私はこれにはあまりにも愚かです。あなたは何か考えていますか?ありがとうございました。 –
イメージを表示する場合は、 'Image'クラスの' FromFile'メソッドを使ってファイルをロードし、そのイメージを 'PictureBox'の' Image'プロパティに代入することができます。もちろん、それぞれの画像に対して1つの 'PictureBox'が必要です。 –