Node.js如何检查给定的字符串是否为有效的文件系统路径,而不实际检查文件系统?

13
如何在nodejs中检查给定的字符串是否是有效的文件系统路径,而不实际检查文件系统。
我正在使用telegram bot nodejs API,在发送文件时它会检查文件是否存在。但第二次使用我从上一个上传中获得的telegram文件ID,而不是实际的文件路径来发送该文件,因此在这种情况下,我想先检查该字符串是否是真实的文件路径而不是文件ID(例如:AgADBAADuqcxG-ysuwhqkRaOdVnJI0CZXhkABL1NBSyVlK3gduoAAgI),以提高性能并避免不必要的文件系统访问。
1个回答

13

1.

您可以检查字符串是否等于path.basename(string)。如果是这样,则不包含任何路径分隔符并且绝对不是另一个目录中的文件。该函数不会触及文件系统,仅检查平台特定的目录分隔符,并且适合您的性能需求。

string === path.basename(string)

2.

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

/identifierregex/.test(string)

我本来希望有一种通用的方法,但这两种方法也可以,谢谢。 - Exlord
1
糟糕,我忘记了 path.sep 的存在,你可以检查你的字符串是否包含该字符,那么它很可能是一个文件名。 - pspi
3
@pspi中的"."或".."也是路径,因此第一种方法会失败。 - Amit Upadhyay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接