Tôi đang cố gắng xác định xem liệu một chuỗi nhập bởi người dùng có hợp lệ để đại diện cho một đường dẫn đến một thư mục hay không. Hợp lệ, ý tôi là được định dạng đúng.
Trong ứng dụng của tôi, thư mục đại diện cho một điểm đến cài đặt. Với điều kiện là các đường dẫn thư mục là hợp lệ, tôi muốn để xác định xem các thư mục tồn tại, và tạo ra nó nếu nó không.
Tôi hiện đang sử dụng IO.Directory.Exists( String path )
. Tôi thấy rằng điều này hoạt động tốt ngoại trừ khi người dùng không định dạng chuỗi đúng cách. Khi điều đó xảy ra, phương thức này sẽ trả về false cho biết rằng thư mục không tồn tại. Nhưng đây là một vấn đề vì tôi sẽ không thể tạo thư mục sau đó.
Từ googling của mình, tôi đã tìm thấy đề xuất sử dụng biểu thức chính quy để kiểm tra xem định dạng có phù hợp hay không. Tôi không có kinh nghiệm với cụm từ thông dụng và đang tự hỏi liệu đó có phải là cách tiếp cận khả thi hay không. Đây là những gì tôi tìm thấy:
Regex r = new Regex( @"^(([a-zA-Z]\:)|(\\))(\\{1}|((\\{1})[^\\]([^/:*?<>""|]*))+)$" );
return r.IsMatch( path );
Liệu một bài kiểm tra biểu thức chính quy kết hợp với Directory.Exists()
, cung cấp cho tôi một phương pháp đủ tốt để kiểm tra xem đường dẫn có hợp lệ hay không và liệu nó có tồn tại không? Tôi biết điều này sẽ thay đổi theo hệ điều hành và các yếu tố khác, nhưng chương trình chỉ được nhắm mục tiêu cho người dùng Windows .