ファイル場所の相対指定

CAGLIOSTRO
記事: 6
登録日時: 2023年7月15日(土) 07:05

ファイル場所の相対指定

投稿記事by CAGLIOSTRO » 2023年7月19日(水) 08:40

こんにちは。以前に質問をしたカリオストロです。
また質問をさせてください。

現在、

const fs = require('fs');
const fileExists = fs.existsSync(ファイルまでの絶対パス);

でローカル環境内のファイルの存在確認をして、それによりイベント条件分岐をおこなう処理をいれています。
現在はユーザにDドラへディレクトリを作らせ、その絶対ファイルパスをハードコードで指定することになっています。

できれば相対パスでプロジェクト内のimgフォルダにある画像を指定したいのですが、相対パスで指定する方法をご存知の方はいらっしゃるでしょうか。
もしいらっしゃいましたら、ご教示をいただきたく、よろしくお願いいたします。

アバター
剣崎 宗二
記事: 686
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: ファイル場所の相対指定

投稿記事by 剣崎 宗二 » 2023年7月19日(水) 10:52

ちょっと表現しにくいのですが…
fsを使っているのであれば../ と./を使えば行けると思います。

実行場所のパスがD:\\aaa\bbb\~~.js だったとして、

D:\\aaa\bbb\ccc\target.txt にアクセス → ./ccc/target.txt
D:\\aaa\dd\target.txt にアクセス → ../dd/target.txt

ただ、ツクールの実行場所の基準がexeの場所なのかjsの場所なのかは私には不明なので(この機能を使う必要がなかったので)色々実験してもらうのが良いかもしれません。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
CAGLIOSTRO
記事: 6
登録日時: 2023年7月15日(土) 07:05

Re: ファイル場所の相対指定

投稿記事by CAGLIOSTRO » 2023年7月19日(水) 11:43

カレント指定は何回か試したのですが、微妙に上手く行かなかったんですよね……。
いくつかのパターンで再試験をしてみます。

ありがとうございました。
アバター
Plasma Dark
記事: 676
登録日時: 2020年2月08日(土) 02:29
連絡を取る:

Re: ファイル場所の相対指定

投稿記事by Plasma Dark » 2023年7月19日(水) 13:58

fsのパス解決方法はNodeの公式リファレンスに記載があります。

String paths are interpreted as UTF-8 character sequences identifying the absolute or relative filename. Relative paths will be resolved relative to the current working directory as determined by calling process.cwd().


fsを使うということはローカルファイルとして配布するということなので、ワーキングディレクトリは index.html のある場所になるはずです。
imgフォルダにあるファイルの存在確認をするのであれば以下のように書けそうです。

コード: 全て選択

fs.existsSync('./img/AAAA/BBBB.png')


プロジェクトの絶対パスを使いたい場合は process.cwd() を使うと良いと思います。
CAGLIOSTRO
記事: 6
登録日時: 2023年7月15日(土) 07:05

Re: ファイル場所の相対指定

投稿記事by CAGLIOSTRO » 2023年7月19日(水) 17:23

ありがとうございます。次に触れるタイミングで試してみます!
CAGLIOSTRO
記事: 6
登録日時: 2023年7月15日(土) 07:05

Re: ファイル場所の相対指定

投稿記事by CAGLIOSTRO » 2023年7月19日(水) 19:26

行けました! ありがとうございました。

“MZ:質問” へ戻る