Nodejs检查给定的字符串是不是是有效的文件系统路径而不实际检查文件系统

Posted

技术标签:

【中文标题】Nodejs检查给定的字符串是不是是有效的文件系统路径而不实际检查文件系统【英文标题】:Nodejs check if the given string is a valid file system path without actually checking the file systemNodejs检查给定的字符串是否是有效的文件系统路径而不实际检查文件系统 【发布时间】:2016-12-22 15:16:58 【问题描述】:

如何在 nodejs 中检查给定的字符串是否是有效的文件系统路径而不实际检查文件系统。

我正在使用电报机器人 nodejs api,在发送文件时它会检查文件是否存在。但是第二次我使用telegram file id,我从预览上传而不是实际文件路径发送文件,所以在这种情况下,我想检查字符串是否是实际文件路径而不是文件id(exp: AgADBAADuqcxG-ysuwhqkRaOdVnJI0CZXhkABL1NBSyVlK3gduoAAgI) 在检查文件是否存在之前,以提高性能并避免不必要的文件系统访问。

【问题讨论】:

【参考方案1】:

1.

你可以检查字符串是否等于path.basename(string)。然后它不包含任何路径分隔符,并且绝对不是另一个目录中的文件。该功能不会触及文件系统,仅检查字符串以查找特定于平台的目录分隔符,因此适合您的性能需求。

string === path.basename(string)

2.

另一个想法:如果标识符遵循特定格式,则为该格式创建一个正则表达式并测试每个字符串是否匹配并相应地继续。

/identifierregex/.test(string)

【讨论】:

我正在寻找一种通用的方式,但这两种方式都可以,tnx 射击,我忘了path.sep的存在,你可以检查你的字符串是否包含那个字符,那么它可能是一个文件名 @pspi ... 也是路径,所以第一种方法会失败。

以上是关于Nodejs检查给定的字符串是不是是有效的文件系统路径而不实际检查文件系统的主要内容,如果未能解决你的问题,请参考以下文章

Nodejs - Joi 检查字符串是不是在给定列表中

如何检查给定字符串是不是是Java中的有效JSON

检查给定字符串是不是等效于给定字符串集中的至少一个字符串的有效方法

使用数字格式检查给定字符串是不是为有效货币

如何检查文件是不是为有效的 HDF5 文件?

检查字符串是不是是十六进制数的有效表示