ユーザーが入力したテキストを使用する場合は、文字列から不正な文字を削除する必要があります。そうしないと、その名前でファイルを作成しようとしたときに例外が発生します。
private static string RemoveInvalidChars(string s, char[] invalidChars) {
foreach (char ch in invalidChars) {
s = s.Replace(ch.ToString(), "");
}
return s.Trim();
}
このヘルパーメソッドを使用すると、次のようにビットマップを保存できます
string path = RemoveInvalidChars(Path.GetDirectoryName(textBox4.Text),
Path.GetInvalidPathChars());
string filename = RemoveInvalidChars(Path.GetFileName(textBox4.Text),
Path.GetInvalidFileNameChars());
if (filename.Length > 0) {
if (path.Length > 0) {
filename = Path.Combine(path, filename);
}
bitmap.Save(filename);
} else {
// not a valid filename
}