public class FileTest {
public static void matches(Path path, String glob){
PathMatcher matcher = FileSystems.getDefault().getPathMatcher(glob);
System.out.println(matcher.matches(path));
}
public static void main(String[] args) throws IOException {
Path path = Paths.get("/com/java/One.java");
matches(path, "glob:*.java"); // regular expression that matches any file path that end with .java so it will return the value as true
matches(path, "glob:**/*.java"); // regular expression ** characters matches zero or more characters crossing directory boundaries so it will match complete path but if you put /* it will search for a path like this /com/java//one.java soe here it will not match the path and will return value as false.
matches(path, "glob:*"); // this will match any path and return value as true.
matches(path, "glob:**"); // this will complete path crossing directory so it will return you value as true.
}
}
Trong chương trình trên khi bạn đang gọi trận với đường dẫn như "/com/java/One.java"
và glob biểu thức chính quy để tìm kiếm hoặc phù hợp với con đường hàm sẽ lấy giá trị và thực hiện các hoạt động và trở về đúng hay sai . Đầu ra:
true
false
true
true
Nếu bạn đang sử dụng nền tảng cửa sổ thì bạn cần sửa đổi chương trình của mình như sau.
public class match {
public static void matches(Path path, String glob){
PathMatcher matcher = FileSystems.getDefault().getPathMatcher(glob);
System.out.println(matcher.matches(path));
}
public static void main(String[] args) throws IOException {
Path path = Paths.get("\\com\\java\\One.java");
matches(path, "glob:*.java");
matches(path, "glob:**\\*.java");
matches(path, "glob:*");
matches(path, "glob:**");
}
}
Để biết thêm chi tiết Click here
tôi không lấy đầu ra mà bạn đã cung cấp cho đường dẫn đầu vào. Nhưng tôi nhận được đầu ra của bạn khi tôi chỉ cần vượt qua tên tập tin - 'Paths.get (" One.java ")'. Trên cửa sổ, hệ thống tệp NTFS. Hệ điều hành nào và hệ thống tệp nào bạn đã thử nghiệm mã này? – BatScream
@BatScream mã đang hoạt động cho tôi vì nó nằm trong hệ điều hành windows và tôi nhận được kết quả tương tự như được đề cập trong OP – Adil