Giriş
Bu sınıfı kullanmak için şu satırı dahil ederiz.
Path ve File birbirlerine dönüştürülebilirler.
Her işletim sınıfının yol için belirlediği bir üst sınır vardır. Linux'ta üst sınır şöyle öğrenilebilir.
İki şekilde alınabilir. İlki System sınıfını kullanmak
Path'in sadece dosya ismi olan kısmını döndürür. Şöyle yaparız.
Şöyle yaparız.
of metodu
Yeni Path nesnesi yaratır. Paths.get() metodu yerine kullanılabilir.
resolve metodu
Path'in altındaki bir dosya ismini Path olarak verir veya İki path nesnesini birleştirir.
Bu sınıfı kullanmak için şu satırı dahil ederiz.
import java.nio.file.Path;
Bu sınıf Java 7'den beri var. Yani bayağı eski.Path ve File birbirlerine dönüştürülebilirler.
# getconf PATH_MAX /
4096
# getconf NAME_MAX /
255
currentPath metoduİki şekilde alınabilir. İlki System sınıfını kullanmak
Path currentPath = Paths.get(System.getProperty("user.dir"));
İkincisi ise boş string vermek.Path currentRelativePath = Paths.get("");
Path currentDir = currentRelativePath.toAbsolutePath();
getFileName metoduPath'in sadece dosya ismi olan kısmını döndürür. Şöyle yaparız.
Path p = Paths.get("C:\\Hello\\AnotherFolder\\The File Name.PDF");
String file = p.getFileName().toString();//The File Name.PDF verir
getFileSystem metoduŞöyle yaparız.
Path path = ...;
// We obtain the file system of the Path
FileSystem fs = path.getFileSystem();
// We create the new WatchService using the new try() block
WatchService service = fs.newWatchService();
getNameCount metodu
İkiden sonraki tüm kısımları şöyle alırız.Path incomingPath = Paths.get("C:\\cresttest\\parent_3\\child_3_1_.txt");
Path finalPath = incomingPath.subpath(2, incomingPath.getNameCount()));
getRoot metodu
Path'in temsil ettiği yolun en başındaki kısmı temsil eder.
Yeni Path nesnesi yaratır. Paths.get() metodu yerine kullanılabilir.
relativize metodu
Path'in root kısmını çıkararak geri kalan kısmı verir
Örnek
Şöyle yaparız. Sonuç olarak "data\processed\Test.xml" alırız
File file = new File("C:\\data\\processed\\Test.xml");
Path path = file.toPath();
path = path.getRoot().relativize(path);
Açıklaması şöyle.
path.getRoot() returns C:\path.relativize(path) returns a relative path to a parameter.
Path'in altındaki bir dosya ismini Path olarak verir veya İki path nesnesini birleştirir.
Örnek
Şöyle yaparız
import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import org.springframework.core.io.Resource;import org.springframework.core.io.UrlResource;private final Path root = Paths.get("uploads");@Overridepublic Resource load(String filename) {try {Path file = root.resolve(filename);Resource resource = new UrlResource(file.toUri());if (resource.exists() || resource.isReadable()) {return resource;} else {throw new RuntimeException("Could not read the file!");}} catch (MalformedURLException e) {throw new RuntimeException("Error: " + e.getMessage());}}
Örnek
Şöyle yaparız.
Açıklaması şöyle.
İlk iki kısmını şöyle alırız.
Örnek
Path incomingPath = Paths.get("C:\\cresttest\\parent_3\\child_3_1_.txt");
//getting C:\cresttest\, adding NEW_PATH to it
Path subPathWithAddition = incomingPath.subpath(0, 2).resolve("NEW_PATH");
resolveSibling metodu
resolveSibling metodu yazısına taşıdım
subPath metodu
Path'in belirtilen sayıdaki ilk kısımlarını döndürür
Örnek
Şöyle yaparız. Sonuç olarak "data\processed\Test.xml" alırız
File file = new File("C:\\data\\processed\\Test.xml");
Path path = file.toPath();
int count = path.getNameCount(); // the count of names
path = path.subpath(0, count); // all the names
path.getNameCount() returns the number of name elements in the path (3 in this case)path.getName(0) returns data, path.getName(1) returns processed etc...path.subpath(fromInclusive, toExclusive) returns a relative Path that is a subsequence of the name elements of this path.
Örnek
Path incomingPath = Paths.get("C:\\cresttest\\parent_3\\child_3_1_.txt");
//getting C:\cresttest\
Path subPathWithAddition = incomingPath.subpath(0, 2);
toAbsolutePath metodu
Belirtilen relative path'i absolute path haline getirir.
toString metoduBelirtilen relative path'i absolute path haline getirir.
Path currentRelativePath = Paths.get("");
Path currentDir = currentRelativePath.toAbsolutePath();
Örnek
Path göreceli (relative) de olsa mutlak (absolute) ta olsa sonucu işletim sistemine göre değiştirir
Şöyle yaparız. Burada Windows'ta çalıştığım için / karakterini \ ile değiştirdi
Path path = Paths.get("target/jardirectory");
// target\jardirectory
String directoryPath = path.toString();
Örnek
Şöyle yaparız.
Path sourceFile = ...;
if (sourceFile.toString().toLowerCase().endsWith("jpg")) {...}
Hiç yorum yok:
Yorum Gönder