Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.24;
Скачать: CL | DM;

Вниз

Как переименовать много файлов   Найти похожие ветки 

 
Handle ©   (2006-09-05 09:36) [0]

Есть довольно много фотографий сделанных цифровым фотоаппаратом и у всех имена что то типа  00007001, 00007002, подскажите пожалуйста как переименовать их по дате снимка.


 
Guest001   (2006-09-05 09:46) [1]

sr: TSearchRec;
FindFirst("*.*", faAnyFile, sr)
FindNext(sr)
+F1+


 
default ©   (2006-09-05 09:51) [2]

например, так:
использовать TStringList c Sorted = True
перебирая файлы добавляем в TStringList через AddObject пару значений - в качестве строки дату снима, а в качестве object-а имя файла
после всех добавлений список будет отсортирован по строке, то есть по дате
пробегаемся по списку сначала(то есть в порядке возрастания дат) и через массив Objects получаем имена файлов для переименования


 
Palladin ©   (2006-09-05 09:54) [3]

а кто сказал что дата создания файла будет дата снимка?


 
default ©   (2006-09-05 10:01) [4]


procedure TForm1.Button1Click(Sender: TObject);
var
  SL: TStringList;
  fn: String;
begin
  SL := TStringList.Create;
  fn := "FileName";
  SL.AddObject("FileDate", TObject(fn));
  Caption := String(SL.Objects[0]) // выведется "FileName"
end;


только учти как сравниваются строки!
"25.02.1983" > "12.03.2006"
то есть дату предварительно надо перевернуть
то есть вместо dd.mm.yyyy надо yyyy.mm.dd


 
default ©   (2006-09-05 10:03) [5]

Palladin ©   (05.09.06 09:54) [3]
это я предполагаю


 
Zeqfreed ©   (2006-09-05 10:09) [6]

> [2] default ©   (05.09.06 09:51)

Я бы наоборот загнал их в TList и отсортировал по числовому представлению даты. Сортировка строк будет гораздо затратней.


 
Virgo_Style ©   (2006-09-05 10:12) [7]

по идее, надо залезть jpeg"у в то место, которое у mp3 называется Tag. Там наверняка много всего вкусного =)


 
Handle ©   (2006-09-05 10:12) [8]

Спасибо решил проблему.


 
default ©   (2006-09-05 10:26) [9]

Zeqfreed ©   (05.09.06 10:09) [6]
вообще, снимки позже появляющиеся на свет обычно имеет большие номера и номера идут один за другим
может у него там набор файлов типа
00007001..00007237 тогда вообще никакой сортировки не надо


 
Zeqfreed ©   (2006-09-05 10:33) [10]

> [9] default ©   (05.09.06 10:26)

Ну на практике в такой ситуации сортировка действительно может не потребоваться. Но если побыть немного буквоедом, то MS, вроде, не гарантирует перечисление файлов ф-циями FindFirstFile/FindNextFile в лексикографическом порядке и может изменить это поведение в будущем :)


 
default ©   (2006-09-05 10:36) [11]

Zeqfreed ©   (05.09.06 10:33) [10]
а это без разницы
если есть набор имён 00007000..00008000
и встретив имя 000070003 мы поймём, что это имя 4 по счёту начиная с 1


 
Zeqfreed ©   (2006-09-05 10:39) [12]

> [11] default ©   (05.09.06 10:36)

А, понял мысль :) Тогда порядок не важен, согласен.


 
Плохиш ©   (2006-09-05 10:56) [13]


> Virgo_Style ©   (05.09.06 10:12) [7]

EXIF

http://djernaes.dk/martin/jpeginfo.html
http://www.torry.net/pages.php?id=104&SID=a98f01a9d2ff194eeb70eb5f2dfe4249


 
palva ©   (2006-09-05 12:14) [14]


> Zeqfreed ©   (05.09.06 10:33) [10]
> > [9] default ©   (05.09.06 10:26)
> MS, вроде, не гарантирует перечисление файлов ф-циями
> FindFirstFile/FindNextFile в лексикографическом порядке


Если FAT, то выдача идет в порядке физического расположения записей о файлах.



Страницы: 1 вся ветка

Текущий архив: 2006.09.24;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.032 c
2-1157009368
Patrick
2006-08-31 11:29
2006.09.24
Access violation...


2-1157011598
Dr. Genius
2006-08-31 12:06
2006.09.24
TFileStream


15-1157456068
H010d Freeze
2006-09-05 15:34
2006.09.24
Build проекта из командной строки


15-1157346730
Ega23
2006-09-04 09:12
2006.09.24
С Днём рождения! 3 сентября


2-1157483491
Серый
2006-09-05 23:11
2006.09.24
Базы данных