我遇到問題,如果在IsolatedStorage
文件名中使用了特殊字符(除了完整句號,冒號和破折號),我的應用程序將崩潰。IsolatedStorage名稱中的特殊字符
有沒有在IsolatedStorage
文件名中使用這些特殊字符的解決方法。
如果不能如何刪除所有特殊字符?
附註:我從文本框中輸入文件名。
我遇到問題,如果在IsolatedStorage
文件名中使用了特殊字符(除了完整句號,冒號和破折號),我的應用程序將崩潰。IsolatedStorage名稱中的特殊字符
有沒有在IsolatedStorage
文件名中使用這些特殊字符的解決方法。
如果不能如何刪除所有特殊字符?
附註:我從文本框中輸入文件名。
我相信你在找什麼是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");
}
如果你希望允許非字母數字字符,那麼你可以有不允許的字符的列表,並檢查文件名中的任何字符在該列表中存在。
如果您希望用戶輸入文件名,那麼您應該使用@TheBrain建議的預防性方法。不要去掉代碼中的字符,然後更改文件名,而不是首先將它們輸入。 InputScope爲此目的而存在 –
「文件名」和「FullFilePath」輸入範圍允許用戶輸入諸如「\」,「/」,「?」,「<」等無效字符(除非這些字符在隔離存儲?我沒有嘗試過,但是它們在Windows上無效) – keyboardP
那麼我將如何去實現這個輸入範圍呢? – Newbie