path模块及其函数:获取文件目录,判断文件是否存在,获取文件大小等。
path模块是Node.js中的核心模块之一,用于处理文件路径和目录路径相关的操作。它提供了一些函数,用于获取文件目录、判断文件是否存在、获取文件大小等。下面我们来逐一介绍这些函数。
1. path.dirname(path)
路径拆分函数,返回一个路径的目录名。参数path是需要拆分的路径,它可以是一个相对路径或绝对路径。这个函数会返回 path 的目录名,返回的目录名不包含 path 的最后一部分。
例如:假设当前目录为"D:\myproject",则path.dirname("D:\myproject\src\index.js")返回的是"D:\myproject\src"。
2. path.basename(path, [ext])
路径拆分函数,返回一个路径的最后一部分。参数path是需要拆分的路径,它可以是一个相对路径或绝对路径。参数ext是一个可选参数,默认值为"",用于指定文件扩展名。如果指定了ext参数,则返回的结果将会去掉文件扩展名。如果未指定ext参数,则返回的结果包含文件扩展名。
例如:假设当前目录为"D:\myproject",则path.basename("D:\myproject\src\index.js")返回的是"index.js",path.basename("D:\myproject\src\index.js", ".js")返回的是"index"。
3. path.resolve([...paths])
路径拼接函数,将多个路径拼接起来生成一个绝对路径。参数paths是需要拼接的路径,可以是多个相对路径或绝对路径。如果有相对路径,则会将其转为绝对路径。如果最后一个参数不是以"/"或"\"结尾,则会在最后一个路径后添加一个"/"。
例如:假设当前目录为"D:\myproject",则path.resolve("src\index.js")返回的是"D:\myproject\src\index.js",path.resolve("/src", "index.js")返回的是"D:\src\index.js"。
4. path.join([...paths])
路径拼接函数,将多个路径拼接起来生成一个相对路径。参数paths是需要拼接的路径,可以是多个相对路径或绝对路径。如果有绝对路径,则会忽略前面的所有路径。如果最后一个路径以"/"或"\"结尾,则会直接返回这个路径。该函数不会真正的对路径进行拼接,只是将路径字符串合成在一起。
例如:假设当前目录为"D:\myproject",则path.join("src", "index.js")返回的是"src\index.js"。
5. path.isAbsolute(path)
路径判断函数,判断一个路径是否为绝对路径。参数path是需要判断的路径。如果是绝对路径,则返回true,否则返回false。
例如:假设当前目录为"D:\myproject",则path.isAbsolute("D:\myproject\src\index.js")返回的是true,path.isAbsolute("src\index.js")返回的是false。
6. path.relative(from, to)
路径计算函数,返回从from到to的相对路径。参数from和to都是路径,它们可以是相对路径或绝对路径。返回的相对路径是从from到to的相对路径,如果from和to是相同的路径,则返回"."
例如:假设当前目录为"D:\myproject",则path.relative("D:\myproject\src", "D:\myproject\dist\index.js")返回的是"..\dist\index.js"。
7. path.normalize(path)
路径规范化函数,将一个路径转为标准化的形式。参数path是需要规范化的路径,可以是相对路径或绝对路径。返回值是一个以"/"为分隔符的路径字符串,所有多余的"/"都被替换为一个"/",所有"."和".."都会被处理掉。
例如:假设当前目录为"D:\myproject",则path.normalize("D:\myproject\src//index.js")返回的是"D:\myproject\src\index.js"。
8. path.parse(path)
路径解析函数,将一个路径解析成对象形式。参数path是需要解析的路径,可以是相对路径或绝对路径。返回的对象包含属性dir、root、base、name、ext,分别对应路径中的目录、根目录、文件名、文件名(不含扩展名)和扩展名。
例如:假设当前目录为"D:\myproject",则path.parse("D:\myproject\src\index.js")返回的是{dir: "D:\myproject\src", root: "D:\", base: "index.js", name: "index", ext: ".js"}。
9. path.format(pathObject)
路径格式化函数,将一个路径对象转为路径字符串。参数pathObject是一个路径对象,必须包含属性dir、root、base或name和ext中的至少两个属性。返回值是一个字符串,表示解析后的路径。
例如:假设当前目录为"D:\myproject",则path.format({dir: "D:\myproject\src", name: "index", ext: ".js"})返回的是"D:\myproject\src\index.js"。
10. path.exists(path, [callback])
文件存在性检查函数,判断指定路径文件是否存在。参数path是需要检查的文件路径,可以是相对路径或绝对路径。参数callback是一个回调函数,用于异步获取检查结果。如果文件存在,则回调函数的第二个参数为true,否则为false。
例如:假设当前目录为"D:\myproject",则path.exists("D:\myproject\src\index.js", function(exists){ if(exists){ console.log('文件存在'); }else{ console.log('文件不存在'); }});
11. path.stat(path, [callback])
文件状态获取函数,获取指定文件的文件状态信息。参数path是需要获取状态信息的文件路径,可以是相对路径或绝对路径。参数callback是一个回调函数,用于异步获取状态信息。如果成功获取状态信息,则回调函数的第二个参数为一个fs.Stats对象,包含了文件的各种状态信息,如文件大小、修改时间等。
例如:假设当前目录为"D:\myproject",则path.stat("D:\myproject\src\index.js", function(err, stats){if(err){ throw err; }console.log(stats.isFile());});
12. path.access(path, [mode], [callback])
文件访问检查函数,检查指定路径文件是否有权限进行读写操作。参数path是需要检查的文件路径,可以是相对路径或绝对路径。参数mode是一个可选参数,指定要检查的权限,默认值为fs.constants.F_OK,表示文件是否存在的权限。参数callback是一个回调函数,用于异步获取检查结果。如果文件有指定的权限,则回调函数的第二个参数为null,否则为一个Error对象。
例如:假设当前目录为"D:\myproject",则path.access("D:\myproject\src\index.js", fs.constants.R_OK, function(err){if(err){ console.log(err);}});
以上就是path模块中常用的一些函数,它们可以帮助我们快速方便地处理文件路径和目录路径。
