# Node-讀取路徑(Path/fs)
## Path
```javascript=
const path = require('path');
```
### path.basename(path[, ext])
取得路徑的最後一部分,第二個參數為檔案格式
```javascript=
path.basename('/foo/bar/baz/asdf/quux.html');
// Returns: 'quux.html'
path.basename('/foo/bar/baz/asdf/quux.html', '.html');
// Returns: 'quux'
```
### path.__dirname(path)
返回路徑的資料夾名稱,路徑必須為string
```javascript=
path.dirname('/foo/bar/baz/asdf/quux');
// Returns: '/foo/bar/baz/asdf'
```
### path.join([...paths])
將參數內的字串組起來
```javascript=
path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
// Returns: '/foo/bar/baz/asdf'
path.join('foo', {}, 'bar');
// Throws 'TypeError: Path must be a string. Received {}'
```
## fs
```javascript=
const fs = require('fs');
```
### fs.existsSync(path)
同步檢查路徑中是否已存在文件,如果有匯回傳true,沒有則回傳false
### fs.mkdirSync(path[, options])
同步創建目錄,參數一為要建立目錄的位置,參數二為選填,用於確定如何像遞歸地創建目錄等
### fs.readdir(path[, options], callback)
非同步讀取給定路徑的內容,callback需要兩個參數(err, files)
### fs.writeFileSync(file, data[, options])
將資料同步寫入文件,參數一為要寫入的路徑,參數二為要寫入的資料
### fs.readFileSync(path[, options])
以同步的方式讀取文件
### fs.createReadStream(path[, options])
可以打開及讀取內容
```javascript=
let fs = require('fs'),
// Use fs.createReadStream() method
// to read the file
reader = fs.createReadStream('input.txt');
// Read and disply the file data on console
reader.on('data', function (chunk) {
console.log(chunk.toString());
});
```
### fs.createWriteStream(path[, options])
可將資料寫進文件中,參數一為保存文件的路徑
```javascript=
// Include fs module
let fs = require('fs'),
// Use fs.createWriteStream() method
// to write the file
let writer = fs.createWriteStream('test_gfg.txt')
// Read and disply the file data on console
writer.write('GeeksforGeeks');
```