微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SharePoint 文件夹名称验证器

如何解决SharePoint 文件夹名称验证器

我使用 Xamarin 表单并制定了一种机制,通过自由文本条目在 SharePoint 中创建文件夹。

这显然需要一个验证机制,因为有关于 Sharepoint 文件夹命名的规则

https://sharepointstuff.com/2018/12/03/file-naming-restrictions-in-sharepoint/

因为我希望这是一件比较常见的事情,所以我希望有人已经制作了这样的机制。

是否有 Sharepoint 文件名称验证机制?

解决方法

给你,伙计。

    private void Entry_TextChanged(object sender,TextChangedEventArgs e)
    {
        SharepointFolderNameValidator((Entry)sender,ValidationLabel,"Object");
    }

    /// <summary>
    /// Based on Sharepoint folder naming restrictions https://sharepointstuff.com/2018/12/03/file-naming-restrictions-in-sharepoint/
    /// </summary>
    private void SharepointFolderNameValidator(Entry entryField,Label validationLabel,string fieldName) 
    {
        validationLabel.Text = string.Empty;
        var invalidCharacterArray = new[] { '~','#','%','&','*','{','}','\\',':','<','>','?','/','+','|' };
        var invalidNameArray = new[] { "-filer","_files","-Dateien","_fichiers","_bestanden","_file","_archivos","_tiedostot","_pliki","_soubory","_elemei","_ficheiros","_arquivos","_dosyalar","_datoteke","_fitxers","_failid","_fails","_bylos","_fajlovi" };
        if (entryField.Text.Length > 128)
        {
            validationLabel.Text = $"{fieldName} name should be under 128 characters";
        }
        else if (entryField.Text.IndexOfAny(invalidCharacterArray) != -1)
        {
            var invalidCharacterindex = entryField.Text.IndexOfAny(invalidCharacterArray);
            validationLabel.Text = $"{entryField.Text[invalidCharacterindex]} is not a valid character";
        }
        else if (entryField.Text.StartsWith("."))
        {
            validationLabel.Text = $"{fieldName} cannot start with .";
        }
        else if (entryField.Text.EndsWith("."))
        {
            validationLabel.Text = $"{fieldName} cannot end with .";
        }
        else if (entryField.Text.Contains(".."))
        {
            validationLabel.Text = $"{fieldName} cannot have two dots";
        }
        else if (invalidNameArray.Any(entryField.Text.Contains))
        {
            var invalidName = invalidNameArray.First(entryField.Text.Contains);
            validationLabel.Text = $"{invalidName} is not allowed in {fieldName} name";
        }

        validationLabel.IsVisible = string.IsNullOrEmpty(validationLabel.Text) == false;
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。