当前位置 博文首页 > jcLee95的博客:Nodejs 文件 与 路径 相关用法实例解析
CSDN用户名:jcLee95
邮箱:291148484@163.com
原创不易,感谢点赞支持。
const path = require('path');
__dirname
console.log("__dirname =",__dirname);
__dirname = g:\NodeJs\fs
path.join()
path.join() 方法使用特定于平台的分隔符作为定界符将所有给定的 path 片段连接在一起,然后规范化生成的路径。
const joined_path = path.join(__dirname, 'NodeJs', 'textFile.txt')
console.log(joined_path);
g:\NodeJs\fs\NodeJs\textFile.txt
path.basename()
const filename = path.basename('g:\\NodeJs\\fs\\NodeJs\\textFile.txt')
console.log(filename);
textFile.txt
path.extname()
const surfix = path.extname('g:\\NodeJs\\fs\\NodeJs\\textFile.txt')
console.log(surfix);
.txt
path.parse()
const parserst = path.parse('g:\\NodeJs\\fs\\NodeJs\\textFile.txt')
console.log(parserst);console.log();
{
root: 'g:\\',
dir: 'g:\\NodeJs\\fs\\NodeJs',
base: 'textFile.txt',
ext: '.txt',
name: 'textFile'
}
path.format()
与path.parse()
功能相反
const pt = path.format({
root: 'g:\\',
dir: 'g:\\NodeJs\\fs\\NodeJs',
base: 'textFile.txt'
});
console.log(pt);
g:\NodeJs\fs\NodeJs\textFile.txt
path.isAbsolute()
const isAbs1 = path.isAbsolute('g:\\NodeJs\\fs\\NodeJs\\textFile.txt');
const isAbs2 = path.isAbsolute('textFile.txt');
console.log('isAbs1是绝对路径吗:',isAbs1);
console.log('isAbs2是绝对路径吗:',isAbs2);
isAbs1是绝对路径吗: true
isAbs2是绝对路径吗: false
path.relative()
const path1 = '/data/orandea/test/aaa';
const path2 = '/data/orandea/impl/bbb';
const relativepath = path.relative(path1,path2)
console.log('path2在path1的相对表示为:',relativepath);console.log();
path2在path1的相对表示为: ..\..\impl\bbb
path.resolve()
// 给定的路径序列从右到左处理,每个后续的 path 会被追加到前面,直到构建绝对路径。
console.log(path.resolve('/foo/bar', '/tmp/file/'));
console.log(path.resolve('NodeJs', 'fs/NodeJs/', 'textFile'));
G:\tmp\file
G:\NodeJs\NodeJs\fs\NodeJs\textFile
path.sep
(注意与不同系统的路径分隔符有关)
console.log('foo\\bar\\baz'.split(path.sep));console.log();
[ 'foo', 'bar', 'baz' ]
注意区分不同系统上的路径分隔符不同。
path.delimiter
console.log('路径定界符为:',path.delimiter);
路径定界符为: ;
const processEnvPATH = process.env.PATH
console.log(processEnvPATH);
console.log(processEnvPATH.split(path.delimiter));console.log();
C:\Program Files\PowerShell\7;C:\Program Files\AdoptOpenJDK\jdk-11.0.8.10-hotspot\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files\Common Files\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\PowerShell\7\;D:\Program Files\Dart\dart-sdk\bin;C:\Program Files\PuTTY\;D:\Program Files\nodejs\;C:\ProgramData\chocolatey\bin;C:\Program Files (x86)\Yarn\bin\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files\dotnet\;C:\Program Files\Git\cmd;C:\Program Files\MySQL\MySQL Shell 8.0\bin\;C:\Users\a2911\AppData\Local\Programs\Python\Python39\Scripts\;C:\Users\a2911\AppData\Local\Programs\Python\Python39\;C:\Users\a2911\AppData\Local\Microsoft\WindowsApps;D:\flutter;C:\Users\a2911\AppData\Local\GitHubDesktop\bin;C:\Users\a2911\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\a2911\AppData\Local\Yarn\bin;D:\flutter\bin;C:\Users\a2911\.dotnet\tools;D:\Program Files\Nox\bin;C:\Users\a2911\AppData\Roaming\npm;
[
'C:\\Program Files\\PowerShell\\7',
'C:\\Program Files\\AdoptOpenJDK\\jdk-11.0.8.10-hotspot\\bin',
'C:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath',
'C:\\Program Files\\Common Files\\Oracle\\Java\\javapath',
'C:\\WINDOWS\\system32',
'C:\\WINDOWS',
'C:\\WINDOWS\\System32\\Wbem',
'C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\',
'C:\\WINDOWS\\System32\\OpenSSH\\',
'C:\\Program Files\\PowerShell\\7\\',
'D:\\Program Files\\Dart\\dart-sdk\\bin',
'C:\\Program Files\\PuTTY\\',
'D:\\Program Files\\nodejs\\',
'C:\\ProgramData\\chocolatey\\bin',
'C:\\Program Files (x86)\\Yarn\\bin\\',
'C:\\Program Files\\Docker\\Docker\\resources\\bin',
'C:\\ProgramData\\DockerDesktop\\version-bin',
'C:\\Program Files\\dotnet\\',
'C:\\Program Files\\Git\\cmd',
'C:\\Program Files\\MySQL\\MySQL Shell 8.0\\bin\\',
'C:\\Users\\a2911\\AppData\\Local\\Programs\\Python\\Python39\\Scripts\\',
'C:\\Users\\a2911\\AppData\\Local\\Programs\\Python\\Python39\\',
'C:\\Users\\a2911\\AppData\\Local\\Microsoft\\WindowsApps',
'D:\\flutter',
'C:\\Users\\a2911\\AppData\\Local\\GitHubDesktop\\bin',
'C:\\Users\\a2911\\AppData\\Local\\Programs\\Microsoft VS Code\\bin',
'C:\\Users\\a2911\\AppData\\Local\\Yarn\\bin',
'D:\\flutter\\bin',
'C:\\Users\\a2911\\.dotnet\\tools',
'D:\\Program Files\\Nox\\bin',
'C:\\Users\\a2911\\AppData\\Roaming\\npm',
''
]
path.dirname()
const dir = path.dirname('g:\\NodeJs\\fs\\NodeJs\\textFile.txt');
console.log(dir);
g:\NodeJs\fs\NodeJs
const path = require('path');
access()
const file = 'g:\\NodeJs\\textFile.txt';
// 检查当前目录中是否存在该文件。
fs.access(file, fs.constants.F_OK, (err) => {
console.log(`${file} ${err ? '不存在' : '存在'}`);
});
// 检查文件是否可读。
fs.access(file, fs.constants.R_OK, (err) => {
console.log(`${file} ${err ? '不可读' : '可读'}`);
});
// 检查文件是否可写。
fs.access(file, fs.constants.W_OK, (err) => {
console.log(`${file} ${err ? '不可写' : '可写'}`);
});
// 检查当前目录中是否存在文件,是否可写。
fs.access(file, fs.constants.F_OK | fs.constants.W_OK, (err) => {
if (err) {
console.error(
`${file} ${err.code === 'ENOENT' ? '不存在' : '是 只读文件'}`);
} else {
console.log(`${file} 存在, 并且它是可写的`);
}
});
g:\NodeJs\textFile.txt 存在
g:\NodeJs\textFile.txt 可读
g:\NodeJs\textFile.txt 可写
g:\NodeJs\textFile.txt 存在, 并且它是可写的
copyFile()
let sourceFile = 'g:\\NodeJs\\textfile.txt';
let destinationFile = 'g:\\NodeJs\\textfile.txt';
// 定义复制操作后执行的回调函数
function callBack(err) {
if (err) {throw err}
else{
console.log('文件顺利复制完成');
};
}
fs.copyFile(sourceFile, destinationFile, callBack);
文件顺利复制完成
fs.constants.COPYFILE_EXCL
let sourceFile = 'g:\\NodeJs\\textfile.txt';
let destinationFile = 'g:\\NodeJs\\textfile.txt';
function callBack(err) {
if (err) throw err;
console.log('文件顺利复制完成');
}
fs.copyFile(sourceFile, destinationFile, fs.constants.COPYFILE_EXCL, callBack);
[Error: EEXIST: file already exists, copyfile 'g:\NodeJs\textfile.txt' -> 'g:\NodeJs\textfile.txt'] {
errno: -4075,
code: 'EEXIST',
syscall: 'copyfile',
path: 'g:\\NodeJs\\textfile.txt',
dest: 'g:\\NodeJs\\textfile.txt'
}