我的问题是,如果在文件名中使用特殊字符(句号、冒号和破折号除外),IsolatedStorage
我的应用程序将崩溃。
IsolatedStorage
在文件名中使用这些特殊字符是否有任何解决方法。
如果不是,我怎样才能删除所有的特殊字符?
旁注:我从 TextBox 中获取文件名的输入。
我的问题是,如果在文件名中使用特殊字符(句号、冒号和破折号除外),IsolatedStorage
我的应用程序将崩溃。
IsolatedStorage
在文件名中使用这些特殊字符是否有任何解决方法。
如果不是,我怎样才能删除所有的特殊字符?
旁注:我从 TextBox 中获取文件名的输入。
我相信您正在寻找的是这个Input Scope。只需将输入范围设置为“文件名”。有一些方法可以通过代码或外部参照表解决,但更优雅(IMO)只是限制可以输入的内容。
文件名中不能包含某些字符,例如<
,>
等|
...您可以使用此方法删除在文本框中找到的任何特殊字符
string cleanedFilename = RemoveSpecialCharacters(myTextBox.Text);
public string RemoveSpecialCharacters(string input)
{
StringBuilder sb = new StringBuilder();
foreach(char c in input)
{
if(Char.IsLetter(c))
sb.Append(c);
}
return sb.ToString();
}
您还可以检测是否有任何非字母字符来验证 TextBox。然后,您可以让用户知道存在不受支持的字符。简单修改上面的方法
public bool ContainsNonLetters(string input)
{
foreach(char c in input)
{
if(!Char.IsLetterOrDigit(c))
return true;
}
return false;
}
当用户提交时,您可以执行检查。
if(ContainsNonLetters(filename))
{
MessageBox.Show("Please use alphanumeric characters only");
}
else
{
MessageBox.Show("Filename seems fine");
}
如果您想允许非字母数字字符,那么您可以有一个不允许的字符列表,并检查该列表中是否存在文件名中的任何字符。