macos — MAC: Как проверить, копируется ли файл в c ++?

В моем текущем проекте у нас было требование проверить, копируется ли файл.

Мы уже разработали библиотеку, которая будет давать нам уведомления ОС, такие как file_added, file_removed, file_modified, file_renamed в определенной папке вместе с соответствующим путем к файлу.

Проблема здесь в том, что, скажем, если вы добавляете файл размером 1 ГБ, он дает несколько уведомлений, таких как file_added, file_modified, file_modified, когда файл копируется.

Теперь я решил превзойти эти уведомления, проверяя, копирует ли файл или нет. Исходя из этого, я буду игнорировать события.

Я написал ниже код, который говорит, если файл копируется или нет, который принимает путь к файлу в качестве входного параметра.
Подробности: — В Mac, когда файл копируется, дата создания устанавливается как некоторая дата, меньшая, чем 1970. После того, как он скопирован, дата устанавливается на текущую дату. Использую эту технику. На основании этого я решаю, что файл копируется.

Проблема: — когда мы копируем файл в терминале, он выходит из строя. Пожалуйста, посоветуйте мне любой подход.

bool isBeingCopied(const boost::filesystem::path &filePath)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

bool isBeingCopied = false;
if([[[[NSFileManager defaultManager] attributesOfItemAtPath:[NSString stringWithUTF8String:filePath.string().c_str()] error:nil] fileCreationDate] timeIntervalSince1970] < 0)
{
isBeingCopied = true;
}

[pool release];
return isBeingCopied;
}

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]