FileMakerのパスで苦しんだ話カテゴリーFileMakerFileMakerのパスで苦しんだ話FileMakerでメディア管理のファイルを作っていて、パスのスラッシュで苦しんだという話です。写真や動画、その他いろんなファイルをオブジェクトとして読み込んで管理するデータベースを作って実作編とか調子こいてますが、Ver.3の途中で停滞しまくり、挫折間近でございます。いうのも、パスがわけわかりません。メディアファイルを読み込む方法は、一個ずつ挿入、あるいはフォルダごと一括で登録します。一括のときはファイル名、パス、サムネイルが同時に取得できます。ないときはGetAsTextで取得します。追記さらに追記パスメディア管理ではパスが最重要フィールドとなります。パスを元に画像を再読込みしたり、更新があったときにパスから元メディアを辿ります。パスからオブジェクトを探しに行って登録したりします。パスって、何がどうあってもピンポイントで場所を特定できる絶対的なものですよね。これを信頼しないとコンピュータで何もできません。いうパスなんですが、最近、苦労して作ったパスに関連するスクリプト群がことごとく動かなくなってしまい、というか、動きが期待通りではなくなってしまい、その原因もわからず長い時間苦しみ抜きました。苦行の果てにようやく判ったことは、FileMaker仕草に対する誤解でした。問題をざっくりいうと、ファイルパスを元に何か事を行うとき、今まで出来ていたことが出来なくなったように感じたこと。具体的には、照合フィールドとして利用することが困難になりました。今まではそれなりに上手く動いていたのに、弾かれてしまうようになった感じです。厳格になったのでしょうか。謎の接頭語とスラッシュの数そもそもの話をすると、パスに接頭語を含める意味がわかりません。その接頭語は条件によって「image:」だとか「imagemac:」だとか「file:」だとか「PNGf:」だとかいろいろ変わります。URLに例えたら、サイトの内容によって「http」の部分がbogttpになったりimagettpになったりofficialttpになったり変化するようなものです。画像メインの公式サイトの場合どうすんだよ!みたいな。接頭語そのものに留まらず、スラッシュの数の出鱈目さが仇になります。スラッシュが一個だったり二個だったりします。時にはスラッシュがないものもあります。同じファイルを読み込んだものですが、パスの取得方法や時と場合によってはこうなります。スラッシュが2個スラッシュが1個どないなっとんのこれ?インポートの方法によって変わるのか。ファイルパスって、フォルダから読み込んだら取得できますが、そうでない限りGetAsTextから生成しますよね。すれば原因はおれか...だんだん核心に迫ってきました。・フォルダからインポートしたら「file://」スラッシュが2個入ります。フォルダからのインポートのみ、FileMakerがパスを取得してくれます。GetAsTextの最後の行。」スラッシュなしになります。)・挿入して参照したら「ファイル種類またはfile+mac:/」スラッシュ1個になります。パスを変換するConvertFromFileMakerPath関数というものがあります。FileMakerパスからPOSIXに変換してくれるという。これはいい!と、思ったこともありました。関数を試してみましたが、スラッシュが二個くっついたパスを変換できません。エラーで結果が「?」となります。スラッシュが一個だと上手くいきますが、勝手に二個くっつけたのFileMakerさんのほうですよ。こんなのなら今まで使ってきた自作の変換関数のほうが賢いよ。ひとつ、逆の関数もあります。POSIXをFileMaker式パスに変換してくれます。POSIXのパスをConvertToFileMakerPathで変換すると、これは正しく動きました。出来上がったFileMaker用パスはスラッシュが一個でした。そのスラッシュ一個のパスを、再びConvertFromFileMakerPathしてやると、正しくPOSIXに変換されました。