Вы сейчас говорите две разные вещи. Одним из них является packageId
, который является уникальным идентификатором для вашего приложения (используется в Google Play). И еще одна вещь - имя пакета Java . Эти два на самом деле не связаны и не должны оставаться синхронизированными.
Чтобы изменить packageId
, просто отредактируйте свой файл манифеста или перейдите в диалоговое окно Project Strucure
( F4 kbd>), затем на вкладку app
и отредактируйте Application Id
[115] или отредактируйте каждый аромат (dev
, prod
и т. д. соответственно), если вы хотите, чтобы Id отличался в каждом аромате.
Можно использовать Сервис Индексации для этого, но я рекомендовал бы только обработать сортировку себя при использовании FindFirstFile.
Сортировка не возможна с FindFirstFile Win32 API. Существует немного более усовершенствованный FindFirstFileEx, но даже который не позволяет сортировать.
Существует сообщение Raymond Chen на Старой Новой Вещи об ограничениях FindFirstFile.
Ваш лучший выбор состоит в том, чтобы, вероятно, загрузить все результаты в вектор и затем вид это.
Поскольку все указали, FindFirstFile()
не делает и не может отсортировать файлы, которые это возвращает. Это работает на довольно низком уровне и возвращает файлы в порядке, который касается естественного порядка файловой системы записей каталога в каталоге.
На диске, отформатированном с FAT и FAT32, тот порядок сильно коснется порядка, в котором файлы были созданы, изменены удалениями файла и возможным повторным использованием теперь пустых слотов записи каталога. Это вызвано тем, что каталоги FAT являются (как во многих файловых системах Unix) просто упакованным массивом структур записи каталога фиксированного размера, наряду с ужасным взломом для установки длинным именам файлов, записанным в Unicode в структуру каталогов, разработанную для 8,3 имен, написанных в ASCII. В отличие от Unix, вызовы API Win32 требуются прочитать записи каталога, но это не влияет на порядок, в котором читаются записи.
На NTFS (насколько я понимаю) каталоги представлены в некотором варианте B-дерева, и естественный порядок файлов, замеченных API Win32, поэтому связан с индексацией, естественной для той структуры данных.
Вы видите различия с DIR
команда в командной строке. На объеме FAT32, DIR
показывает файлы в другом порядке, чем он будет, если та же самая папка будет скопирована в том NTFS. DIR /ON
должен перечислить файлы в том же порядке независимо от базовой используемой файловой системы.
Никакой неотсортированный порядок, произведенный DIR, не совпадает с порядком, произведенным Windows Explorer, когда Вы сортируете по имени. (В этом отношении, DIR /ON
не то же, также.)
Windows Explorer использует независимый от случая вид, который также, кажется, игнорирует некоторые знаки пунктуации в виде и пытается быть умным о числах. В частности, простое использование qsort()
с stricmp()
не получит тот же ответ как Проводник. Не ясно, документируется ли фактический порядок сортировки, используемый или Проводником или DIR, где-нибудь.
Например, следующий вид имен как это в DIR:
C:\temp\test> dir/on/b
aoli.txt
a-one.txt
atwo.txt
b1.txt
b10.txt
b2.txt
b-20.txt
b21.txt
b3.txt
b-4.txt
но записывая из Проводника, отсортированного в столбце Name, они находятся в этом порядке:
aoli.txt
a-one.txt
atwo.txt
b1.txt
b2.txt
b3.txt
b10.txt
b21.txt
b-4.txt
b-20.txt
Я испытываю затруднения, предполагая, что простое применяется в функции сравнения для получения последнего эффекта.
Win32
Во-первых, используйте findfirst, и findnext для нахождения всех файлов (помните, findfirst, и findnext поддерживают glob'ing (*.exe, и т.д.)... Загрузите файлы соответствия в список и отсортируйте его. STL поможет Вам там.
Linux
Используйте opendir () и readdir () для нахождения всех файлов в каталоге. Используйте fnmatch () на тех файлах, чтобы сделать Ваш glob'ing. И точно так же, как Windows, загрузите файлы соответствия в список и отсортируйте его.
Необходимо считать все имена файлов в некоторый подходящий набор и затем отсортировать их сами. Windows API не предоставляет услуг сортировки.