Tôi vừa sử dụng liên kết hữu ích nhất này: How do I check if a given string is a legal/valid file name under Windows?Làm thế nào để có được một "tên tiếng Anh" cho một nhân vật?
Và bên trong một số mã xác thực tôi có một cái gì đó giống như (bỏ qua thực tế là tôi không sử dụng lớp StringBuilder và bỏ qua lỗi khi tạo thư) 't cần phải nói với họ về 'Colon' nhiều hơn một lần nếu nó xuất hiện trong chuỗi nhiều hơn một lần)):
string InvalidFileNameChars = new string(Path.GetInvalidFileNameChars());
Regex ContainsABadChar = new Regex("[" + Regex.Escape(InvalidFileNameChars) + "]");
MatchCollection BadChars = ContainsABadChar.Matches(txtFileName.Text);
if (BadChars.Count > 0)
{
string Msg = "The following invalid characters were detected:\r\n\r\n";
foreach (Match Bad in BadChars)
{
Msg += Bad.Value + "\r\n";
}
MessageBox.Show(Msg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
đó MessageBox sẽ giống như thế (sử dụng ví dụ rằng một dấu hai chấm được tìm thấy):
- bắt đầu -
.210Các nhân vật không hợp lệ sau đây được phát hiện:
:
- end -
Tôi muốn nó nói cái gì đó như:
- bắt đầu -
Các ký tự không hợp lệ sau được phát hiện:
Colon ->:
- kết thúc -
Tôi thích có tên tiếng Anh. Không phải là một kẻ giết người, nhưng đã tò mò nếu có một số chức năng ra khỏi đó như (mà không tồn tại cho lớp Char, nhưng có thể tồn tại trong một số lớp khác mà tôi không nghĩ đến):
Char.GetEnglishName (': ');
bạn đã cố viết chức năng của riêng mình chưa? –
@ DanielA.White Tôi không chắc chắn nếu anh ta muốn Unicode, nhưng đó là rất nhiều nhân vật. Chương trình Charmap có dữ liệu đó. – McKay
:) Char.GetEnglishName (':'); Tôi ước rằng sẽ có một phương pháp như thế này –