Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как переименовать много файлов [D6, WinXP]


Handle ©   (2006-09-05 09:36:00) 

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


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


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


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


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


> 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


Zeqfreed   (2006-09-05 10:39:00) [3]

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

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


default   (2006-09-05 10:36:00) [4]

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


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

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

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


default   (2006-09-05 10:26:00) [6]

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


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

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


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

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


Zeqfreed   (2006-09-05 10:09:00) [9]

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

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


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

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


default   (2006-09-05 10:01:00) [11]


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


Palladin   (2006-09-05 09:54:00) [12]

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


default   (2006-09-05 09:51:00) [13]

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


Guest001   (2006-09-05 09:46:00) [14]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо