Собственно, весь вопрос в заголовке. Можно ли где найти исходники такой? Если нет, то, может, кто подскажет, что почитать, что-бы такую состряпать? Вообщем, любая помощь по теме?
Для C: Под Win API - копать в сторону GetFileTime() Под *nix - копать в сторону fstat()
В дескрипторах FAT32 и ниже вроде нет атрибута access time - поэтому если вы пишете задачу на чистом C - одной строчкой не обойтись(нету функции для того, чего не было на момент создания компилятора).
Я, конечно, в этом разбираюсь очень слабо, но, можно же, стандартными средствами винды найти все файлы, в которых изменения были произведены в определённом промежутке времени. Мне нужно, что-бы программа регулярно обходила все папки, и перемещала "старые" файлы в заданную папку. То есть, мне, насколько я понимаю, нужен скрипт, задающий последовательность определённых команд для винды?
if (!stat(filename, &buf)) { strftime(timeStr, 100, "%d-%m-%Y %H:%M:%S", localtime( &buf.st_mtime)); printf("\nLast modified date and time = %s\n", timeStr); } else { printf("error getting atime\n"); } _strtime(timebuf); _strdate(datebuf); printf("\nThe Current time is %s\n",timebuf); printf("\nThe Current Date is %s\n",datebuf); time( <ime ); printf("\nThe Current time is %s\n",ctime( <ime )); printf("\Diff between current and last modified time ( in seconds ) %f\n", difftime(ltime ,buf.st_mtime ) ); return 0; }
Соответственно для проверки времени чтения файла - &buf.st_atime - должно работать под никсами и посылать нафиг под виндой.
Вообще то, я не программер, просто, хочу реализовать саму идею. Мне немного не ясен смысл этого вот выражения: должно работать под никсами и посылать нафиг под виндой. Так будет этот код работать в винде или нет?
_Dimitriy, &buf.st_mtime - будет. &buf.st_atime - не должно.
Вообще то, я не программер, просто, хочу реализовать саму идею. -
Kernel Panic!
Зачем на C реализовывать идею, не являясь программистом? Есть же более дружелюбные к не-программистам языки. А модифицировать чужой код - это вообще жестокая задача.
Если функция, например на PHP:
<?php
// outputs e.g. somefile.txt was last accessed: December 29 2002 22:16:23.
$filename = 'somefile.txt';
if (file_exists($filename)) {
echo "$filename was last accessed: " . date("F d Y H:i:s.", fileatime($filename));
}
?>
Можно скрипт написать.
Создаешь файлик "Myscript.php", ставишь интерпретатор PHP и в нем запускаешь. Ректально, но вполне решает задачу при ее текущей постановке.
На Си
Под Win API - копать в сторону GetFileTime()
Под *nix - копать в сторону fstat()
В дескрипторах FAT32 и ниже вроде нет атрибута access time - поэтому если вы пишете задачу на чистом C - одной строчкой не обойтись(нету функции для того, чего не было на момент создания компилятора).
В любом случае, если пишете под Win API - msdn.microsoft.com/en-us/library/ms724320%28VS....
Если на Plain C - в гугле есть такая программка:
Соответственно для проверки времени чтения файла - &buf.st_atime - должно работать под никсами и посылать нафиг под виндой.
Мне немного не ясен смысл этого вот выражения:
должно работать под никсами и посылать нафиг под виндой.
Так будет этот код работать в винде или нет?
&buf.st_mtime - будет.
&buf.st_atime - не должно.
Вообще то, я не программер, просто, хочу реализовать саму идею. -
Kernel Panic!
Зачем на C реализовывать идею, не являясь программистом? Есть же более дружелюбные к не-программистам языки. А модифицировать чужой код - это вообще жестокая задача.
Что это?
Зачем на C реализовывать идею, не являясь программистом?
А я всё равно уже давно думаю, выучить Си.
Зачем учить С? Не мучай мозг - назад дороги нет! =)
Не знаю, таков был выбор моего друга.