Может ли кто-нибудь показать мне, как разделить путь к файлам по папкам, файлу и диску? Мне нужно регулярное выражение?
RegExp? Да и Нет - вы можете использовать String#split
, который использует регулярное выражение, даже если он часто чувствует, что использует обычную строку:
String[] parts = "C:\\Program Files\\Application\\config.txt".split("\\\\");
В результате привод (parts[0]
), папки (parts[1]
и parts[2]
) и имя файла (parts[parts.length-1]
)
Возможно, вам придется проверить, является ли первый сегмент именем диска (заканчивается на ":" ), последний сегмент - это имя файла (file.isDirectory()
), и если сегмент содержит папку (например, нет папки в C:\test.txt
.
Нет регулярного выражения, необходимо использовать java.io.File часть стандартной библиотеки.
В частности, методы getName()
, getParent()
и getParentFile()
, которые будут намного проще.
Если вам нужно разбить на имя файла windows nix или наоборот:
Pattern pt=Pattern.compile("\\\\\\\\|\\\\/");
String[] ar=pt.split("c:\\aaa\\bbb\\ccc");
String[] ar1=pt.split("/tmp/aaa/ddd");
System.out.println(ar[ar.length-1]);
System.out.println(ar1[ar1.length-1]);