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);
...
}
非常感謝您的回答,Fredrik。你的例子工作得很好,但我看不到如何顯示排序圖像,我只能以字符串格式顯示他們的FielInfo日期。我認爲應該有另一個排序的文件數組,它將顯示在pictureBox中,但是如何用你的數組'文件'來填充這個新數組,填充有排序的FileInfos。我太笨了。你有什麼主意嗎?謝謝。 – 2009-09-01 20:40:19
如果您想改爲顯示圖像,您可以選擇'Image'類的'FromFile'方法來加載文件,然後將圖像分配給'PictureBox'的'Image'屬性。您當然需要爲每個圖像使用一個「PictureBox」。 – 2009-09-02 05:55:43