Node.js で指定されたパスがファイルまたはディレクトリであることを検出する方法は?

Node Js De Zhi Dingsaretapasugafairumatahadirekutoridearukotowo Jian Chusuru Fang Faha



ファイル エンティティの検出は、アプリケーションがファイルの管理を扱う場合、またはユーザー データを特定のディレクトリに保存する場合に特に重要です。単一のディレクトリには複数のファイルを保持できるため、そのディレクトリに適用される操作には、ファイルを別のディレクトリに移動するか、存在するすべてのファイルを削除することが含まれます。

ファイルについても同様で、ファイルの操作には、ファイルの変更、ファイルへのデータの挿入、またはファイルの削除が含まれる場合があります。開発者がディレクトリに対してファイル操作を適用した場合、またはその逆の場合、アプリケーション全体が台無しになります。

この記事では、次の方法を取り上げて、指定されたパスがファイルであるかディレクトリであるかを検出する方法を説明します。







Node.js で指定されたパスがファイルまたはディレクトリであることを検出する方法は?

「」が提供する方法は2つあります。 fs 「モジュール、つまり「」 isDirectory() ' そして ' isFile() 」は、指定されたパスがファイルまたはディレクトリにつながっているかどうかを確認することを唯一の目的としています。これらのメソッドは、「」を使用する同期シナリオと非同期シナリオの両方で使用されます。 statSync() ' そして ' 統計() 」の方法です。指定されたパスがファイルまたはディレクトリにつながっているかどうかを検出するためのこれら 2 つのメソッドを以下に示します。



方法 1: ディレクトリまたはファイルへのパスを検出する「statSync()」メソッド

statSync() 」メソッドが提供します。 「 fs ”モジュール 基本的には同期操作を実行するために使用されます。この例のこのメソッドは、指定されたパスのインスタンスを 1 回だけ保存します。次に、「」を割り当てます。 isDirectory() ' そして ' isFile() 」メソッドを使用して、指定されたパスがディレクトリまたはファイルにつながっているかどうかを返します。



「statSync()」メソッドの実際の実装については、以下のコード スニペットを参照してください。





定数 fsObj = 必要とする ( 「fs」 ) ;

let パスファイル = fsObj. 統計同期 ( 「/Users/kahou/Documents/readlineProj/mcu.db」 ) ;

コンソール。 ログ ( ' ファイルへのパスが提供されていますか? ' + パスファイル。 isファイル ( ) ) ;

パスディレクトリ = fsObj. 統計同期 ( 「/Users/kahou/Documents/readlineProj」 ) ;

コンソール。 ログ ( 'ディレクトリへのパスが提供されていますか? ' + パスディレクトリ ディレクトリです ( ) ) ;

上記のコードの説明は次のとおりです。

  • まず、「」をインポートします fs ” モジュールを作成し、そのインスタンスを ” に保存します fsObj ' 変数。
  • 次に、「」を呼び出します。 statSync() 」を使用した方法 fsObj ” 変数を使用し、選択したパスを括弧内に渡します。このパスの参照を「 パスファイル ' 変数。
  • 次に、「」を割り当てます。 isFile() ” を使用したメソッド パスファイル ” と指定すると、指定されたパスがファイルにつながるかどうかを示すブール値が返されます。
  • その後、再度「」を呼び出します。 statSync() ”メソッドを実行し、新しいパスを渡します。
  • 最後に「」を付けます。 isDirectory() ” メソッドによって返される値を使用します。 startSync() ' 方法。

次に、以下のコマンドを使用して現在のファイルを実行します。



「ノード<ファイル名>」

たとえば、「app.js」ファイルを実行しました。

出力には「」の値が表示されます。 真実 」が返された場合は、指定されたパスがフォルダー用であり、ファイルが検出されたことを意味します。

方法 2: ディレクトリまたはファイルへのパスを検出する「stat()」メソッド

非同期環境で完全に機能するもう 1 つの方法は、「」として知られています。 統計() 」によって提供されるメソッドです。 fs 」モジュール。また、同じものを使用します。 isFile() ' そして ' isDirectory() 」メソッドを使用しますが、その非同期の性質により、単一のパスを両方のメソッドに渡すことができます。これには 2 つのパラメータがあり、1 つ目はパスを保存し、2 つ目は指定されたパス上でいくつかの操作を実行するコールバック関数です。

定数 fsObj = 必要とする ( 「fs」 )
テストパス = 「/Users/kahou/Documents/readlineProj」

// stat() メソッドを使用する
fsObj. ステータス ( テストパス ( エラー 統計オブジェクト ) => {
もし ( エラー ) {
もし ( 統計オブジェクト。 isファイル ( ) ) {
コンソール。 ログ ( ' \n はい!指定されたパスはファイルにつながりますか? ' ) ;
}
それ以外 もし ( 統計オブジェクト。 ディレクトリです ( ) ) {
コンソール。 ログ ( ' \n はい!指定されたパスはディレクトリにつながりますか? ' ) ;
}
}
それ以外
投げる エラー ;
} ) ;

上記のコードの説明を以下に示します。

  • まず、「」をインポートします fs ” モジュールを作成し、そのインスタンスを ” に保存します fsObj ' 変数。 「」を作成します テストパス ” テスターが指定したパスを格納する変数。
  • ここで、「」を呼び出します。 統計() ” メソッドを実行し、” を渡します テストパス 」を最初のパラメータとして指定し、コールバック関数を 2 番目のパラメータとして指定します。
  • コールバック関数には「 エラー ” を最初のパラメータとして指定し、” 統計オブジェクト 』2本目として。 ” エラー 」には実行中に発生するエラーが含まれており、「startObj」には指定されたパスが含まれています。
  • 関数内では「」を利用します。 もし ” エラーが見つからなかった場合に実行されるステートメント。
  • ネストされた場合 ” ステートメントは、” を割り当てるために使用されます。 isFile() ' そして ' isDirectory() ” を使用したメソッド 統計オブジェクト ”。
  • メソッドが「」を返す場合、 真実 」と指定した場合にのみ、そのセクションが実行され、それに応じて成功メッセージが表示されます。

上記のスクリプトを実行すると、ターミナルは次のように表示されます。

ご覧のとおり、指定されたパスが検出され、指定されたパスがディレクトリにつながっていることが確認されます。

結論

指定されたパスが NodeJs のディレクトリまたはファイルのパスであるかどうかを検出するには、「 isFile() ' そして ' ディレクトリです ' 使用されています。これらのメソッドでアクセスできるパスは、「 statSync() ' そして ' 統計() 「」のメソッド fs 」 NodeJs モジュール。これらのメソッドは、提供されたパスをそれぞれ同期および非同期の方法で保存します。このブログでは、指定されたパスが NodeJS のファイルまたはディレクトリにつながっているかどうかを検出する手順を説明しました。