×
Namespaces

Variants
Actions

Использование TKeyArrayFix для сортировки массива

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Статья
Перевод:
truf
Последнее редактирование: hamishwillee (09 Dec 2011)

Следующий пример демонстрирует создание и сортировку массива структур. Сканируя директорию в поиске JPG файлов, мы будем добавлять в массив полный путь, размер и дату создания каждого найденного файла. После этого, массив будет отсортирован по дате создания файла.

  • .H
struct TFileDetails
{
public :
TFileName iFileName;
TInt64 iFileTime;
TInt iFileSize;
};
 
CArrayFixFlat<TFileDetails> *iGalFileArrayTemp; //объявление
  • .Cpp
iGalFileArrayTemp = new CArrayFixFlat<TFileDetails>(10); // создаем экземпляр



Сканируем директорию и получаем данные о файле. Используем GetDir(), чтобы получить отфильтрованный по расширению список содержащихся в директории файлов.

User::LeaveIfError(fileSession.GetDir(KCFileSpec,KEntryAttMaskSupported,ESortByDate,iDirListC));

где KCFileSpec:

_LIT(KCFileSpec,"C:\\Nokia\\Images\\*.jpg");




for (TInt i1=0;i1<iDirListC->Count();i1++)
{
TFileName iT1;
iT1.Copy(KCDirName);
 
iT1.Append((*iDirListC)[i1].iName);
 
TTime iTime;
iTime = (*iDirListC)[i1].iModified;
 
TFileDetails iFileDetails;
iFileDetails.iFileName.Copy(iT1);
iFileDetails.iFileTime = iTime.Int64();
iFileDetails.iFileSize = (*iDirListC)[i1].iSize;
 
 
iGalFileArrayTemp->AppendL(iFileDetails);
}


Вы можете просканировать несколько директорий. После этого, полученный массив можно отсортировать следующим образом:

TKeyArrayFix timeKey(_FOFF(TFileDetails,iFileTime),ECmpTInt64);	
iGalFileArrayTemp->Sort(timeKey);


В данном случае, массив был отсортирован по дате создания файла.

  • Удаление массива


if(iGalFileArrayTemp)
delete iGalFileArrayTemp;
This page was last modified on 9 December 2011, at 05:01.
35 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×