2016-08-16 3 views
4

ファイルシステムを実際にチェックせずに、指定された文字列が有効なファイルシステムパスであるかどうかを確認できます。Nodejsは、実際にファイルシステムをチェックせずに、指定された文字列が有効なファイルシステムパスであるかどうかを確認します。

私はtelegram bot nodejs apiを使用しています。ファイルを送信するときにファイルが存在するかどうかを確認します。しかし、2回目に私はtelegram file idを使っています。プレビューからアップロードしたもので、ファイルを送信する実際のファイルパスではありません。この場合、文字列が実際のファイルパスでありファイルIDではないかどうかを確認したいexp:AgADBAADuqcxG-ysuwhqkRaOdVnJI0CZXhkABL1NBSyVlK3gduoAAgI)、ファイルが存在するかどうかを確認してからパフォーマンスを向上させ、不要なファイルシステムへのアクセスを回避します。

答えて

4

1.

文字列がpath.basename(string)に等しいかどうかを確認できます。次に、パス区切り文字は含まれておらず、間違いなく別のディレクトリのファイルではありません。その機能はファイルシステムに触れず、プラットフォーム固有のディレクトリー区切り文字列を検査するだけで、パフォーマンスのニーズに合っています。

string === path.basename(string) 

もう一つのアイデア:識別子は、特定のフォーマットに従うならば、フォーマットのための正規表現を作成し、一致する各文字列をテストし、それに応じて進みます。

/identifierregex/.test(string) 
+0

私は一般的な方法のためにホッピングされたが、これらの両方は、同様TNX – Exlord

+0

撮影を働くだろう、私はそれは、その後、あなたの文字列はその文字が含まれているかどうかをチェックでき、path.sep' 'の存在を忘れてしまいましたおそらくファイル名 – pspi

+0

@pspi '.'または' ..'もパスであるため、最初の方法は失敗します。 –

関連する問題