path以及fs相關模塊

path模塊

__dirname: 獲取當前文件的絕對路徑目錄javascript

__filename: 獲取當前文件的路徑css

ctx.body = {
        dirName: __dirname, 
        fileName: __filename 
}
//{"dirName":"D:\\WEB\\koa_proj","fileName":"D:\\WEB\\koa_proj\\app.js"}

path.join(p1, p2):用於路徑的拼接java

//"D:\\WEB\\koa_proj\\file.txt"
path.join(__dirname, '/file.txt');

path.basename(path, ext):用於獲取路徑中的文件名包括後綴名linux

/**
ext文件後綴名,如.txt,帶有此參數則獲取的是文件名稱,不包括後綴
**/
let filePath = path.join(__dirname, '/file.txt')
path.basename(filePath)//"file.txt"
path.basename(filePath, '.txt')//"file"

path.dirname(path): 用於獲取一個完整文件路徑的目錄名稱,相似__dirnamewindows

let filePath = path.join(__dirname, '/file.txt');
//"D:\\WEB\\koa_proj"
path.dirname(filePath)

path.delimiter: 分隔符,在windows系統中爲';', 在linux中爲':'app

path.extname(p):用於獲取文件的或者名koa

path.extname(filePath)//".txt"

path.parse(p):用於解析一個文件的路徑,生成一個包括目錄、文件名稱、文件後綴的對象async

path.parse(filePath)
/*
{
    "root":"D:\\",
    "dir":"D:\\WEB\\koa_proj",
    "base":"file.txt",
    "ext":".txt",
    "name":"file"
}
*/

path.format:用於將一個對象轉換爲對應的路徑,與path.parse過程相反ui

path.isAbsolute(p): 用於斷定換個文件是相對路徑仍是絕對路徑編碼

path.normalize(p): 根據不一樣的操做系統輸出文件路徑\,/ 同時會將路徑中不一致的分隔符統一處理

path.normalize('D:/WEB\\koa_proj') //"normalizePath":"D:\\WEB\\koa_proj"

path.relative(from, to):用於獲取從from路徑到to路徑的相對路徑

path.resolve(p1, p2): 用於路徑拼接,獲取的老是相對與應用的絕對路徑,path.resolve:**以/做爲跟路徑,所以作字符串拼接的時候會以最後一個/file做爲基準

path.resolve(__dirname, './public','./file.txt')
//"D:\\WEB\\koa_proj\\public\\file.txt"

path.sep: 獲取當前系統的文件路徑操做符號,在window中爲'//'

app.use(route.get('/index', async ctx => {
    console.log(__dirname);
    console.log(__filename);
    ctx.body = {
        dirName: __dirname,
        fileName: __filename ,
        filePath: path.join(__dirname, './file.txt'),
        extFileName: path.basename(filePath, '.txt'),
        dirPathName: path.dirname(filePath),
        pathObj: path.parse(filePath),
        normalizePath: path.normalize('D:/WEB\\koa_proj'),
        relativePath: path.relative(path.join(__dirname, 'file.txt'), path.join(__dirname, '/js/file.js')),
        jsPath: path.join(__dirname, relativePath),
        resolvePath: path.resolve(__dirname, './public','./file.txt'),
        resolvePath2: path.resolve(__dirname, '/js/index.js', '/css/index.css'),
        sep: path.sep
    }
}));

fs模塊

fs.statSync(p, callback):用於檢測某個文件是否存在,當文件不存在的時候會報錯: no such file or directory, stat 'D:WEBkoa_projfile.txt'

fs.statSync(__filename);
{"dev":2585188530,"mode":33206,"nlink":1,"uid":0,"gid":0,"rdev":0,"ino":844424930559515,"size":777,"atimeMs":1526185196399,"mtimeMs":1526185196399,"ctimeMs":1526185196399,"birthtimeMs":1524389744769,"atime":"2018-05-13T04:19:56.399Z","mtime":"2018-05-13T04:19:56.399Z","ctime":"2018-05-13T04:19:56.399Z","birthtime":"2018-04-22T09:35:44.769Z"}

fs.writeFileSync(p, data):用於給一個文件寫數據,若是文件不存在則會建立對應的文件

fs.writeFileSync(path.join(__dirname, './index.js'), 'hello word')

fs.appendFileSync(p, data[,option]):用於向一個文件追加內容,若是文件不存在則會進行建立

fs.appendFileSync(path.join(__dirname, './index.js'), 'hi');

fs.unlink(p):用於刪除文件,當文件不存在或者刪除失敗的時候報錯

fs.unlinkSync(path.join(__dirname, './index.js'));

fs.readFileSync(p[,option]): 用於讀取文件內容

/*
*當不指定編碼格式時讀出來的數據爲Buffer
*/
fs.readFileSync(path.join(__dirname, './index.js'), 'utf-8');

fs.renameSync(oldPath, newPath):用於移動或者從新命名文件,當移動目錄的時候目錄必須存在

fs.renameSync(path.join(__dirname, './index.js'), path.join(__dirname, './index2.js'));

fs.mkdir(p, name):用於建立一個目錄,建立的目錄必須不存在,不然會報錯

fs.mkdirSync(path.join(__dirname, 'test'));

fs.rmdirSync(p):用於刪除一個文件目錄

fs.rmdirSync(path.join(__dirname, './test'));

fs.readdirSysn(p):用於讀取目錄下的文件及目錄

fs.readdirSync(path.join(__dirname, './js'));
相關文章
相關標籤/搜索