Path
не разделит вашу строку на разные элементы, когда вы выполните это в системе, отличной от Windows, потому что он не распознает разделитель файлов, поэтому для создания пути, в котором каждый диск / папка / файл является другим элементом вам нужно создать его вот так
Path winPath = Paths.get("C:", "\\the", "\\wizards", "\\despicable", "\\cat");
или даже лучше, так как вы не хотите, чтобы \ included
Path winPath = Paths.get("C:", "the", "wizards", "despicable", "cat");
Затем вы можете перебирать свои элементы
winPath.forEach( p ->
System.out.println(p)
);
Вот почему ваш второй пример работает должным образом при запуске на машине Ma c (или Linux / Unix).
Paths.get("/Volumes/Multimedia/the/wizards/despicable/cat");
разделит заданный путь на разные элементы, "Volume "," Мультимедиа "и т. Д.