SharePoint 文件夹名称验证器
SharePoint folder name validator
我使用 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;
}
我使用 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;
}