如何解决SharePoint 文件夹名称验证器
我使用 Xamarin 表单并制定了一种机制,通过自由文本条目在 SharePoint 中创建文件夹。
这显然需要一个验证机制,因为有关于 Sharepoint 文件夹命名的规则
https://sharepointstuff.com/2018/12/03/file-naming-restrictions-in-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 举报,一经查实,本站将立刻删除。