2016-08-16 64 views
4

如何在nodejs中檢查給定的字符串是否是有效的文件系統路徑,而不實際檢查文件系統。Nodejs檢查給定的字符串是否是一個有效的文件系統路徑,而不實際檢查文件系統

我正在使用telegram bot nodejs API,當發送文件時它會檢查文件是否存在。但在第二次我使用telegram file id,我從預覽上傳,而不是實際的文件路徑發送文件,所以在這種情況下,我想檢查字符串是否是一個實際的文件路徑,而不是一個文件ID( exp:AgADBAADuqcxG-ysuwhqkRaOdVnJI0CZXhkABL1NBSyVlK3gduoAAgI),然後檢查文件是否存在,以提高性能並避免不必要的文件系統訪問。

回答

4

你可以檢查,如果該字符串等於path.basename(string)。然後它不包含任何路徑分隔符,並且絕對不是另一個目錄中的文件。該功能不會觸及文件系統,只檢查平臺特定目錄分隔符的字符串,因此適合您的性能需求。

string === path.basename(string) 

2.

另一個想法:如果標識符遵循特定的格式,則創建的格式的正則表達式和測試每個字符串匹配,並相應地繼續進行。

/identifierregex/.test(string) 
+0

我跳了一個通用的方法,但是這兩個會的工作爲好,TNX – Exlord

+0

拍,我忘了path.sep'的'存在,你可以檢查你的字符串包含的字符,然後將其可能是一個文件名 – pspi

+0

@pspi''''或'..'也是一個路徑,所以第一種方法會失敗。 –

相關問題