スケッチ関連のパスを取得するには

◆PROCESSING 逆引きリファレンス

 カテゴリー:ファイル操作

スケッチ関連のパスを取得するには

【解説】

PROCESSINGではプログラムソース(スケッチファイル)格納フォルダの直下にある data フォルダに、リソースファイルを格納する事になっています。

リソースファイル以外にも、プログラムで扱いたいファイルは、スケッチフォルダや、その配下に作成する任意のフォルダに格納すると便利です。

それではプログラムから、これらのフォルダの場所を知るにはどうしたら良いでしょうか?。

公式リファレンスには掲載されていませんが、PROCESSINGにはこれらのフォルダパスを取得する便利な命令があります。

  • sketchPath : スケッチフォルダ(またはその配下)へのパスを取得
  • savePath     : 同上。ただしフォルダを自動作成する
  • desktopPath : Windowsの場合、デスクトップへのパスを取得
  • dataPath        : dataフォルダ(またはその配下)へのパスを取得

 

【構文】

●スケッチパスを得る
String  path  =  sketchPath( String  where ) ;
String  path  =  sketchPath(  ) ;

●セーブパスを作成して得る
String  path  =  savePath( String  where ) ;

●デスクトップパスを得る
String  path  =  desktopPath( String  where ) ;

●dataフォルダパスを得る
String  path  =  dataPath( String  where ) ;

path : 取得したパス
where  :    指定フォルダ配下のパス

 

【注意】

Windowsの場合、スケッチを作成してから1度も保存していない状態でこれらの命令を実行すると、 desktopPath( ) 以外の命令は Windowsの非常に奥まった場所を戻してきます。

例:C:¥Users¥ユーザ名¥AppData¥Local¥Temp¥untitled数値の羅列sketches¥sketch_170325b

一度でも保存を実行した後であれば、期待したパス(スケッチ格納フォルダ配下)を戻してくれます。

例:スケッチブックの場所に C:¥processing-3.3¥src が指定してある場合
C:¥processing-3.3¥src¥sketch_170325b

savePath()はsketchPath()と似た動作をしますが、与えられた文字列(where)をスケッチ格納フォルダ配下のパスと見なし、フォルダが存在しない場合は自動作成する点が異なります。

例えばC:¥processing-3.3¥src¥sketch_170325b フォルダにスケッチファイルが格納されている場合、savePath (  “where¥¥hoge.txt” ) ;  とすると

C:¥processing-3.3¥src¥sketch_170325b¥where¥hoge.txt が戻されると共に、C:¥processing-3.3¥src¥sketch_170325b 配下に where というフォルダが自動作成されます。

hoge.txt ファイルは作成されません。

各命令の関係を以下に示します。

dataフォルダを得たい場合は、dataPath( “” ) ; のように、dataPath()命令の引数に空文字を与えます。

 

【関連記事】

 


サンプルプログラム

いろいろなパスを取得する例:

PROCESSING関連のいろいろなパスを取得してみました。

なお下記はWindows10での動作結果で、以下のような環境が前提です。みなさんの環境に応じて、適時読み替えてください。

スケッチブックの場所:C:¥processing-3.3¥src
Windowsのユーザ名 :MSLABO
スケッチ名     :sketch_170325a

<出力サンプル>

 


PROCESSING逆引きリファレンス一覧 へ戻る

本ページで利用しているアイコン画像は、下記サイト様より拝借しております。各画像の著作権は、それぞれのサイト様および作者にあります。