powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как отследить копирование файла?
8 сообщений из 33, страница 2 из 2
Как отследить копирование файла?
    #39283268
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TИ тут МС на идшниках сэкономил.
Не экономил. Это способ вычисления: ID тома + позиция в каталоге. inode на линухе тоже повторно используются и никто не жалуется...
...
Рейтинг: 0 / 0
Как отследить копирование файла?
    #39283476
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПотесть plz меняется ли ID если move-нуть файл в пределах одного volume.
И еще move с одного volume на другой.
Потестил в Far и Проводнике. Win7, NTFS. Смотрел дату создания и ID
ОперацияРезультатКопированиеменяетсяПереименованиене меняетсяПеренос в другую папку в пределах томане меняетсяПеренос папки с файлом внутрине меняетсяПеренос на другой томменяетсяПросмотр по сети с разных ПКне меняется
Интересно сработало в фаре "Перенос на другой том и обратно", время не меняется, а ID меняется. Проводник только копирует на другой том.
И "Копирование с перезаписью": в фаре поменялся ID, а в проводнике нет. Время не поменялось ни там ни там.

исходник смотрелки
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
void main(int argc, char**argv) {
	char *f = argv[1];
	printf("test: %s\n", f);
	BY_HANDLE_FILE_INFORMATION hi = {0};
	HANDLE h = CreateFile(f, GENERIC_READ, 0, NULL,	OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
	if (h == INVALID_HANDLE_VALUE) {
		printf("Error %d\n", GetLastError());
		return;
	}
	if(GetFileInformationByHandle(h, &hi)) {
		printf("create: %X %X  ", hi.ftCreationTime.dwHighDateTime, hi.ftCreationTime.dwLowDateTime);
		printf("id: %X %X\n", hi.nFileIndexHigh, hi.nFileIndexLow);
	} else {
		printf("Error %d\n", GetLastError());
	}
	CloseHandle(h);
}

...
Рейтинг: 0 / 0
Как отследить копирование файла?
    #39283477
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, спасибо.
...
Рейтинг: 0 / 0
Как отследить копирование файла?
    #39283553
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима. Еще попробуй plz в FAR-е ALT+F6 (создание хард-линка на файл).
...
Рейтинг: 0 / 0
Как отследить копирование файла?
    #39283606
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДима. Еще попробуй plz в FAR-е ALT+F6 (создание хард-линка на файл).
Одинаковые. ID и время
...
Рейтинг: 0 / 0
Как отследить копирование файла?
    #39289854
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Статья на схожую тему.
https://habrahabr.ru/company/mailru/blog/307412/
...
Рейтинг: 0 / 0
Как отследить копирование файла?
    #39289881
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По очень старым воспоминаниям. Была совершенно аналогичная задача. Рабочее решение было такое - все поля синтетического ключа были сделаны заполняемыми не последовательно, а рандомно (так, как это делается при создании реплик БД). Собственно слизывали решение именно с репликации, которая не работала именно из-за бесконтрольного копирования - не любит она несинхронные копии реплик. В те стародавние времена GUID-поля ещё не прижились, и для снижения вероятности интерференции мы использовали программно генерируемую 64-байтную случайную строку в качестве уникального идентификатора, и CRC32 в качестве первичного ключа. Предполагалось, что в случае коллизии по первичному ключу будет несложно разрешить конфликт за счёт несовпадения уникального идентификатора, а т.к. вероятность коллизии оценивалась как крайне малая, то предполагалось развести всё вручную - но за всё время работы (лет 5 или 6, не помню) так ни разу и не пришлось этим заниматься.
...
Рейтинг: 0 / 0
Как отследить копирование файла?
    #39289887
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAC-адрес сетевушки еще можно брать.
...
Рейтинг: 0 / 0
8 сообщений из 33, страница 2 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как отследить копирование файла?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]