---
# System prepended metadata

title: Path 的相關方法
tags: [ocpjp]

---

# Path 的相關方法
## resolve方法
```java=
Path path1 = Paths.get("/app/./sys/");
Path res1 = path1.resolve("log"); //相對路徑

Path path2 = Paths.get("/server/exe/");
Path res2 = path2.resolve("/readme/"); //絕對路徑
System.out.println(res1);
System.out.println(res2);
```
**Console:**
```Console=
\app\.\sys\log
\readme
```
:::info
Path物件的resolve方法類似Paths類別的get方法，可以產生新的Path物件。但與Paths類別的get方法不同的地方在於，Path物件的resolve方法會與目前的Path物件有關，resolve方法可傳入相對路徑或是絕對路徑。
:::

[參考網站](https://magiclen.org/ocpjp-path-resolve/)

---
```java=
Path p1 = Paths.get("/Pics/MyPic.jpeg");
System.out.println (p1.getNameCount() +
":" + p1.getName(1) +
":" + p1.getFileName());

```
### Assume that the Pics directory does NOT exist.
What is the result?
A. An exception is thrown at run time.
**B. 2:MyPic.jpeg: MyPic.jpeg**
C. 1:Pics:/Pics/ MyPic.jpeg
D. 2:Pics: MyPic.jpeg
- [x] **Answer: B**

:::info
Path物件的getNameCount方法會計算路徑結構中檔案或是目錄名稱的數量，在這個題目中的路徑為「/Pics/MyPic.jpeg」，因此有「Pics」和「MyPic.jpeg」兩個名稱。

Path物件的getName方法會取得路徑結構中的檔案或是目錄名稱，索引值從0開始。

Path物件的getFileName方法會取得最後一個名稱。

因此這題不論檔案或是目錄存不存在，都會輸出：

```
2:MyPic.jpeg:MyPic.jpeg
```
:::
[參考網站](https://magiclen.org/ocpjp-path/)

###### tags: `ocpjp`