2017-11-06 5 views
1

電子アプリケーションをインストールし、現在のプロジェクトへのパスを入力することを前提とします。あなたは次のようなことをするかもしれません:~/Documents/projectNameこれまで入力したパスに切り替えるnodejs

ノードで入力を受け取り、それが存在するかどうか、具体的には上記のようにパスに入力したかどうかを確認するにはどうすればよいですか?

この理由は、私がA)のパスが存在し、Bかどうかを確認したいということである)場合theresのが、特定のファイル(私はpath.join(dirEntered, fileName.extension)を使用することがあります。

私が欲しいものを行う方法はあります?私はchdirを参照してくださいが、作業ディレクトリがどこにあるか、私は罰金が、やってだろうと思いものが変更されます。

process.chdir('~/Documents')ショー:no such file or directory, uv_chdir(…)

私は彼らのプロジェクトの完全な絶対パスを入力するようにユーザを持つ避けたいですそれは "悪い"と思われます。必要ではありません、私は1つのファイルを読んでいます(ここでアップロードする必要はありません)。

このコマンドを入力して結果を得ることは可能ですか?それとも、殺し過ぎですか?

答えて

2

これを解決する方法は次のとおりです。パスがチルダで始まる場合、チルダは現在のユーザーの完全なホームディレクトリで置き換えられます。次に、fs.statを使用して、指定されたパスが実際に存在するかどうかを確認します。

const fs = require("fs"); 
const os = require("os"); 

var path = "~/Documents"; 
if (path.indexOf("~") === 0) { 
    path = os.homedir() + path.substring(1); 
} 
fs.stat(path, (err, stats) => { 
    if (!err) { 
     // document or path exists 
     if (stats.isFile()) { 
      console.log("Path " + path + " is a file"); 
     } else if (stats.isDirectory()) { 
      console.log("Path " + path + " is a directory"); 
     } 
    } else { 
     // document or path does not exist 
    } 
}); 
関連する問題