Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Изменение даты создания файла на текущую при копировании 
Author Message
MVV



PostPosted: Fri Oct 01, 2010 16:58    Post subject: Reply with quote

Я не думаю, что WatchDirs здесь поможет - эта опция позволяет лишь следить за обновлением каталога, открытого в панели. Автору же топика нужно, чтобы файлы, которые заменяют существующие, имели обновленную дату создания. Не в конкретный момент, а вообще.

Между прочим, я сейчас заметил, что не такая это и тривиальная задача. Есть файл в папке, ставлю ему старую дату создания. Заменяю файл таким же из другой папки - дата сохраняется. Заменяю путем копипастинга - дата сохраняется. Удаляю, копирую - дата сохраняется! Удаляю, копирую через командную строку - дата сохраняется! Переименовываю существующий файл со старой датой, копирую в эту папку новый - ДАТА СОХРАНЯЕТСЯ!!! Хотя файла и в помине нет! Видимо, система в каком-то кэше или где-то еще хранит атрибуты последних файлов... И только если пройдет несколько минут между удалением файла и копированием, файл появляется с настоящей датой создания.

Поэтому нужен скрипт (бат-файл не справится, так как не позволяет изменять дату создания без доп. утилит), который копирует список файлов из текущей папки в папку назначения и потом для скопированных файлов ставит текущую дату создания.

Хотя, опытным путем установил, что при выполнении пары команд del и copy дата файла обновляется, поэтому подойдет и батник. Например, такой:
Code:
@echo off
title Delete and copy
if -%3==- echo Wrong parameter line! Button parameters must be "%%P" "%%T" %%d && pause && goto :EOF
for /f "usebackq delims=" %%f in (%3) do (
   echo Copying "%~2%%f"...
   if exist "%~2%%f" del "%~2%%f"
   copy "%~1%%f" %2
)
pause
cls

Параметры кнопки: "%P" "%T" %d. При этом короткие DOS-имена файлов не должны быть отключены в системе. Если они отключены, можно использовать параметр %f вместо %d, но тогда будут проблемы с русскими именами.

Для использования нужно выделить в панели файлы для копирования на другую панель и нажать кнопку для запуска батника. Файлы будут скопированы, при этом существующие будут заменены, и дата создания обновится (у меня обновляется, проверьте у себя).

А вообще, конечно, использовать такой ненадежный атрибут как дату создания - не очень удачная мысль. При копировании или перемещении файла в другую папку дата обновляется.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
View user's profile Send private message ICQ Number


Powered by phpBB © 2001, 2005 phpBB Group