IsolatedStorage名称中的特殊字符

时间:2013-07-10 18:47:04

标签: c# windows-phone-7 windows-phone-8 special-characters isolatedstorage

我遇到的问题是,如果在IsolatedStorage文件名中使用了特殊字符(除了句号,冒号和破折号),我的应用程序就会崩溃。

IsolatedStorage文件名中使用这些特殊字符是否有任何解决方法。

如果不能如何删除所有特殊字符?

旁注:我正在从TextBox中获取文件名的输入。

2 个答案:

答案 0 :(得分:3)

我相信你要找的是Input Scope。只需将输入范围设置为“文件名”即可。 有办法解决通过代码或外部参照表,但更优雅(IMO)只是限制可以输入的内容。

答案 1 :(得分:1)

文件名中不能包含某些字符,例如<>|等...您可以使用此方法删除文本框中的任何特殊字符

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");
}

如果要允许使用非字母数字字符,则可以使用不允许的字符列表,并检查该列表中是否存在文件名中的任何字符。