Java 7'de java.nio.file.Path
bir String
nesneden nasıl nesne oluşturabilirim ?
yani
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
?
kullanılan eksik kod nerede textPath
.
Java 7'de java.nio.file.Path
bir String
nesneden nasıl nesne oluşturabilirim ?
yani
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
?
kullanılan eksik kod nerede textPath
.
Yanıtlar:
Sadece Paths
sınıfı kullanabilirsiniz :
Path path = Paths.get(textPath);
... varsayılan dosya sistemini kullanmak istediğinizi varsayarsak.
Path.get()
platformdan bağımsız mıdır? yani Path.get("lib","p2")
gibi olacaktır lib\p2
Windows ve lib/p2
linux
Javadocs'tan .. http://docs.oracle.com/javase/tutorial/essential/io/pathOps.html
Path p1 = Paths.get("/tmp/foo");
aynıdır
Path p4 = FileSystems.getDefault().getPath("/tmp/foo");
Path p3 = Paths.get(URI.create("file:///Users/joe/FileTest.java"));
Path p5 = Paths.get(System.getProperty("user.home"),"logs", "foo.log");
Windows'da C: \ joe \ logs \ foo.log dosyası oluşturur (kullanıcı evini C: \ joe olarak varsayarsak)
Unix'te /u/joe/logs/foo.log dosyası (kullanıcı evini / u / joe olarak varsayarsak) oluşturur
File.separarator
Mevcut işletim sistemine bakmak yerine kullanmanızı öneririm . Örn "/tmp/foo"
olduğunuFile.separator+"tmp"+File.separator+"foo"
Mümkünse Path
doğrudan yol öğelerinden oluşturmayı öneririm :
Path path = Paths.get("C:", "dir1", "dir2", "dir3");
// if needed
String textPath = path.toString(); // "C:\\dir1\\dir2\\dir3"
Soru Java 7 ile ilgili olduğunda bile, Java 11'den itibaren Path
sınıfta bunu hemen yapmanıza izin veren statik bir yöntem olduğunu bilmek için değer kattığını düşünüyorum :
Tek bir String'deki tüm yolla:
Path.of("/tmp/foo");
Yol birkaç Dizede ayrılmış olarak:
Path.of("/tmp","foo");
Paths.get
.