Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Работа с файлами. Копировние и переименование


Автор: MsdLamer 24.3.2009, 10:32
Здравствуйте мастера. Подсткажите пожалуйста возможно ли скопировать файлы по дате? К примеру на форме есть компонента DateTimePicker и кнопка копировать. Выбираем дату в DateTimePicker, нажимаем копировать и файлы к примеру из папки C:\1\*.cm копируются (при этом у файлов меняется расширение) в папку D:\2\*.txt. Возможно ли это? Спасибо большое за ответы. Подскажите пожалуйста примером, сам долго буду разбираться... Спасибо

Автор: MetalFan 24.3.2009, 12:49
ну сами по себе файлы не скпоируются конечно)
FindFirst/FindNext/FindClose + отсев по данным GetFileTime

Автор: MsdLamer 24.3.2009, 13:10
Я понимаю что сами не скопируются...) А можете примером показать как это сделать? Я просто очень начинающий программист....)))) И для меня сложно все пока но интересно, а на примере я бы быстрее разобрался, спасибо.  smile  smile 

Автор: Beltar 24.3.2009, 14:12
Цитата

FindFirst/FindNext/FindClose + отсев по данным GetFileTime


Вообще-то у SearchRecord можно время взять, а GetFileTime одним махом использовать, как известно, не получится, да и время она дает по Гринвичу.

2 MsdLamer:

Скопировать API'шной CopyFile, не правда ли странное имя smile .
А как файлы в папке перебрать есть в любом учебнике.

Мне недавно захотелось сделать себе небольшой автоапдейтер программ и я мог бы просто бросить кусок кода с GetFileTime, но лучше ты просто открой справку по WinAPI и прочитай там про GetFileTime, CreateFile (Она создает файловый дескриптор, который можно GetFileTime передать), структуру FILETIME.

Автор: MsdLamer 24.3.2009, 14:51
Я вообще не понимаю о чем вы....  smile , блин ну неучто так сложно примером подсказать я бы хоть разобрался....  smile  smile 

Автор: MetalFan 24.3.2009, 15:05
Цитата(Beltar @  24.3.2009,  14:12 Найти цитируемый пост)
Вообще-то у SearchRecord можно время взять, а GetFileTime одним махом использовать, как известно, не получится, да и время она дает по Гринвичу.

можно... но это будет время последней записи. а оно ли нужно автору?
лучше уж тогда APIшные функции напрямую вызывать.

Цитата(MsdLamer @  24.3.2009,  14:51 Найти цитируемый пост)
блин ну неучто так сложно примером подсказать

не, ну что, так сложно поиском воспользоваться по приведенным словам???

Автор: Frees 24.3.2009, 15:22
Цитата(MsdLamer @  24.3.2009,  16:51 Найти цитируемый пост)
блин ну неучто так сложно примером подсказать я бы хоть разобрался...

сайт тут замечательный нашел по твоиму вопросу http://tinyurl.com/dcas7g

Автор: former 24.3.2009, 16:06
DRKB пока еще доступна для скачивания. smile 

Автор: Beltar 24.3.2009, 16:08
Цитата

но это будет время последней записи. а оно ли нужно автору?


Ну насчет телепатии, сам знаешь, как говорят. ;)

Автор: Christoph 24.3.2009, 18:15
Код

var
  SR:TSearchRec;
  SearchPath: string;
  i:Integer;
begin
Memo1.Clear;
i:=1;
SearchPath:='D:\*.txt';
if FindFirst(SearchPath,faAnyFile,Sr)=0  then
  repeat
      if SameDate(FileDateToDateTime(SR.Time),DateTimePicker1.Date) then
        CopyFile(PAnsiChar(ExtractFilePath(SearchPath)+SR.Name),PAnsiChar('D:\2\'+IntToStr(i)+'.db'),false);
      inc(i);
   until FindNext(sr) <> 0 ;
FindClose(sr);

Автор: THandle 25.3.2009, 17:08
[OFFTOP MODE ON]
[ТЫЧЕР MODE ON]


Christoph, ну сколько, сколько, сколько раз я тебе говорил про оформление кода? Где try..finally?

Цитата(Christoph @  24.3.2009,  18:15 Найти цитируемый пост)
PAnsiChar


У меня например PWideChar в 2009... Почему бы не использовать просто PChar если на то пошло?

В общем, я тебе говорил... Не обижайся за -3 посту smile

[OFFTOP MODE OFF]
[ТЫЧЕР MODE OFF]

MsdLamer, 

пройдись http://forum.vingrad.ru/act-Search/f-331.html по этому разделу, по ключевому слову FindFirst, указав в графе 'Фильтр по имени пользователя' имя величайшего делфиста THandle. И увидишь ты сколько примеров только он, уже, давал по этой теме.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)