Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В File API пакета SDK MIP статическая функция mip::FileHandler::GetFileStatus() позволяет разработчику получить состояние файла без необходимости создавать объект File Engine, выполнять проверку подлинности и даже иметь подключение к сети.
Все, что требуется, — это имя файла и создание mipContext с указанием пути к файлу и потока.
Поддерживаемые типы файлов
- Форматы файлов Office на основе OCP (Office 2010 и более поздних версий)
- Устаревшие форматы файлов Office (Office 2007)
- Поддержка универсального PFILE
- Файлы, поддерживающие Adobe XMP
- Электронная почта — формат .MSG
Функция GetFileStatus()
mip::FileHandler::GetFileStatus() позволяет разработчику получить состояние файла. Полный список см. в справочнике по API.
В этой статье рассматриваются следующие методы:
-
mip::FileHandler::GetFileStatus()статическая функция - Объект FileStatus, содержащий метки и сведения о защите файла или контейнера
-
IsProtected()Свойство -
IsLabeled()Свойство -
ContainsProtectedObject()Свойство
Требования
Для создания FileHandler для работы с определенным файлом требуется:
-
mipContext - Создание обработчика файлов не требуется
Получение состояния файла
Чтобы использовать mip::FileHandler::GetFileStatus() статическую функцию, разработчику потребуется передать путь к файлу или файловый поток и mipContext, чтобы выполнить эту функцию. Выполнение этой функции не требует создания файлового модуля, проверки подлинности или подключения к Интернету.
Эта функция особенно полезна для:
- Получение состояния защиты файла для сценариев расшифровки перед созданием обработчика. Зная состояние защиты заранее, разработчик может пропустить затраты на создание обработчика, если файл уже защищен.
- Получение состояния файла, который уже может иметь метку перед созданием обработчика, чтобы попытаться прочитать метку (экономия времени)
- Получение состояния MSG-файла с вложениями, для которых, как и для самого MSG-файла, может потребоваться анализ или расшифровка
GetFileStatus() Возвращает fileStatus объект со следующими свойствами:
-
IsProtected()Свойство — возвращает bool — файл защищён/зашифрован -
IsLabeled()Свойство — возвращает логическое значение — файл помечен -
ContainsProtectedObject()Свойство — возвращает логическое значение — файл, контейнер или сообщение содержит защищенный объект.
Рекомендуется проверять все три свойства, так как файл может не иметь ни одного из них, иметь все три свойства или любую промежуточную комбинацию.
Кроме того, так как функция GetFileStatus() не требует аутентификации или модуля выполнения, методы IsProtected(), IsLabeled() и ContainsProtectedObject() показывают, содержит ли файл метку или защиту. Он не проверяет, существуют ли маркировка или защита в арендаторе и доступны ли они для использования пользователем. Для проверки метки и/или защиты потребуется пройти процесс аутентификации и создания обработчика.
if (options.count("getfilestatus")) {
auto fileStatus = GetFileStatus(filePath, fileStream, mipContext);
if (fileStatus->IsProtected()) {
cout << "File is protected" << endl;
}
if (fileStatus->IsLabeled()) {
cout << "File is labeled" << endl;
}
if (fileStatus->ContainsProtectedObjects()) {
cout << "File contains protected objects" << endl;
}
GetLabel(fileHandler);
return EXIT_SUCCESS;
}
if (options.GetFileStatus) {
var fileStatus = FileHandler.GetFileStatus(options.FilePath, mipContext);
if (fileStatus.IsProtected()) {
Console.WriteLine("The file is protected.");
}
if (fileStatus.IsLabeled()) {
Console.WriteLine("The file is labeled.");
}
if (fileStatus.ContainsProtectedObjects()) {
Console.WriteLine("The file contains protected objects.");
}
return true;
}
if (options.count("getfilestatus")) {
auto fileStatus = GetFileStatus(filePath, fileStream, mipContext);
if (fileStatus->IsProtected()) {
cout << "File is protected" << endl;
}
if (fileStatus->IsLabeled()) {
cout << "File is labeled" << endl;
}
if (fileStatus->ContainsProtectedObjects()) {
cout << "File contains protected objects" << endl;
}
GetLabel(fileHandler);
return EXIT_SUCCESS;
}