すべてのユーザーwinforms application
に小さな を作成する を作成しました。SQLite database
にはユーザーのdatabase name
が含まれe-mailaddress
ます。
シナリオ:
e-mailaddress: を持つユーザーがtest@test.com
アプリケーションを使用すると、以下database
が作成されます。
test@test.com.sqlite
パスに変換された電子メールアドレスが有効なパスに変換されないというシナリオがあることは知っています。
次の文字はパスによって予約されています。/ \ ? % * : | " < > . and a space
現在、次の方法を使用して電子メールアドレスをフィルタリングしています。
public string ReturnFilteredUsername(string username)
{
username = username.Replace("<", "x"); username = username.Replace(">", "x"); username = username.Replace(":", "x"); username = username.Replace("\"", "x");
username = username.Replace("/", "x"); username = username.Replace(@"\", "x"); username = username.Replace("|", "x"); username = username.Replace("?", "x");
username = username.Replace("*", "x");
return username;
}
現時点では、すべての予約文字が「x」に置き換えられます。すべての無効な文字を「%20」に変換したいと考えています。「x」を「%20」に置き換えることは可能ですが、それは「クリーン」な方法ではないと思います
誰かがもっと「きれいな」方法を思い付くことができますか?
前もって感謝します!