6 способов проверить, зарегистрирован ли файл в SharePoint

При работе с SharePoint важно знать, возвращен или извлечен файл другими пользователями. В этой статье мы рассмотрим различные методы программной проверки состояния файла в SharePoint. Мы предоставим примеры кода с использованием CSOM (объектная модель на стороне клиента) для демонстрации каждого метода. Давайте погрузимся!

Метод 1: использование свойства File.CheckOutType

using Microsoft.SharePoint.Client;
public static bool IsFileCheckedIn(ClientContext context, string fileUrl)
{
    var file = context.Web.GetFileByServerRelativeUrl(fileUrl);
    context.Load(file, f => f.CheckOutType);
    context.ExecuteQuery();
    return file.CheckOutType == CheckOutType.None;
}

Объяснение: Этот метод извлекает свойство CheckOutTypeфайла. Если значение равно CheckOutType.None, это означает, что файл возвращен.

Метод 2: использование свойства File.Level

using Microsoft.SharePoint.Client;
public static bool IsFileCheckedIn(ClientContext context, string fileUrl)
{
    var file = context.Web.GetFileByServerRelativeUrl(fileUrl);
    context.Load(file, f => f.Level);
    context.ExecuteQuery();
    return file.Level == FileLevel.Published;
}

Объяснение: Этот метод проверяет свойство Levelфайла. Если значение равно FileLevel.Published, это означает, что файл возвращен.

Метод 3: использование свойства File.UIVersionLabel

using Microsoft.SharePoint.Client;
public static bool IsFileCheckedIn(ClientContext context, string fileUrl)
{
    var file = context.Web.GetFileByServerRelativeUrl(fileUrl);
    context.Load(file, f => f.UIVersionLabel);
    context.ExecuteQuery();
    return !file.UIVersionLabel.EndsWith("0");
}

Объяснение: Этот метод проверяет свойство UIVersionLabelфайла. Если метка не заканчивается на «0», это означает, что файл возвращен.

Метод 4: использование свойства File.CheckOutStatus

using Microsoft.SharePoint.Client;
public static bool IsFileCheckedIn(ClientContext context, string fileUrl)
{
    var file = context.Web.GetFileByServerRelativeUrl(fileUrl);
    context.Load(file, f => f.CheckOutStatus);
    context.ExecuteQuery();
    return file.CheckOutStatus == FileCheckOutStatus.None;
}

Объяснение: Этот метод проверяет свойство CheckOutStatusфайла. Если значение равно FileCheckOutStatus.None, это означает, что файл возвращен.

Метод 5: использование свойства File.Versions

using Microsoft.SharePoint.Client;
public static bool IsFileCheckedIn(ClientContext context, string fileUrl)
{
    var file = context.Web.GetFileByServerRelativeUrl(fileUrl);
    context.Load(file, f => f.Versions);
    context.ExecuteQuery();
    return file.Versions.Count == 1;
}

Объяснение: Этот метод извлекает коллекцию версий файлов и проверяет, равен ли счетчик 1. Если да, это указывает на то, что файл возвращен.

Метод 6: использование свойства File.LockType

using Microsoft.SharePoint.Client;
public static bool IsFileCheckedIn(ClientContext context, string fileUrl)
{
    var file = context.Web.GetFileByServerRelativeUrl(fileUrl);
    context.Load(file, f => f.LockType);
    context.ExecuteQuery();
    return file.LockType == FileLockType.None;
}

Объяснение: Этот метод проверяет свойство LockTypeфайла. Если значение равно FileLockType.None, это означает, что файл возвращен.

В этой статье мы рассмотрели шесть способов проверить, проверен ли файл в SharePoint с помощью CSOM. Эти методы предоставляют вам различные способы программного определения статуса файла. Используя эти методы, вы можете улучшить рабочие процессы разработки и автоматизации SharePoint.