Пакетное переименование файлов: Как сохранить порядок имен файлов? - PullRequest
1 голос
/ 11 ноября 2019

У меня есть 1000 изображений, которые я хочу переименовать, чтобы они переименовали их от 1 до 1000. Я нашел это решение (ответ с наибольшим количеством голосов):

dirData = dir('*.png');         %# Get the selected file data
fileNames = {dirData.name};     %# Create a cell array of file names
for iFile = 1:numel(fileNames)  %# Loop over the file names
newName = sprintf('%04d.png',iFile);  %# Make the new name
movefile(fileNames{iFile},newName);        %# Rename the file
end

Но оно не срабатывает, когдаколичество цифр от исходного имени файла изменяется. В частности:

  • После переименования 10 изображений десятое изображение становится номером 1.
  • При применении кода на 101 изображение 101-е изображение становится первым, 100-е становится вторым и десятоестановится третьим.

Это влияет на мой набор данных, потому что их позиция важна. Цель состоит в том, чтобы переименовать изображения с 1,2,3, .... на N. Любой способ решить эту проблему?


Мои исходные имена файлов имеют вид 90_AAA_AA_CC ипервое число в приведенной выше форме варьируется от 1 до N для N изображений.

Начиная с "dirData.name", заказы на 100 изображений выглядят следующим образом:

100,10,11,12, ...
19,1,20,21, ...
29,2,30,31, ...
39,3,40,41, ...
49,4,50,51, ...
59,5,60,61, ...
69,6,70,71, ...
79,7,80,81, ...
89,8,90,91, ... 99,9
...