Path to objectとフォルダパス

フォルダパスをオブジェクト化してみたのですが…
[]24544989;“Your comment here…”[/]

extensionは""で、nameが"test3.4"だと思う。 :frowning:

拡張子とは何か,あまり,深く考えたことがありませんでした。

https://ja.wikipedia.org/wiki/拡張子

確かに,Windowsの拡張子はファイルに限定されているようです。

https://msdn.microsoft.com/ja-jp/library/8e46eyt7.aspx

Macの場合,.app, .bundle, .framework, .plugin, .kextなどの「フォルダー」には拡張子が付いていますし,最後のピリオドに続く部分が拡張子,とされています。

https://developer.apple.com/documentation/corefoundation/1543269-cfurlcopypathextension?changes=_9&language=objc

視点を変えれば,エクスプローラー/Finderで拡張子を非表示にしたときに消えないものは拡張子ではない,とも言えるのですが・・・

File, Folderは,もともと,Wakanda Serverにあったクラスで,
Mac/Win/Linuxの違いを吸収する点が便利でした。

https://wakanda.github.io/api-reference/interfaces/wakfilesystem.html

プラットフォーム間で違う振る舞いになることは,ほんとうに望ましいのでしょうか。

フォルダのコピー/移動をしようとして、nameプロパティで最後のフォルダ名を取得したつもりだったのですが
意図しない動作をしたので気がつきました。

Mac/Win関係なくフォルダの場合には、"test.app"まではnameではないかと思いますが。

.appとか.frameworkは、OSXでパッケージ化されたフォルダについている名称だとおもわれますので
こちらが特殊ではないかと。 :frowning:

具体的な用途をお知らせいただき,ありがとうございました。

この場合,nameはファイルやフォルダーの名前ではなく,
「拡張子を除いた部分」であり,
「ファイルやフォルダーの名前」が必要であれば,
name+extensionを使用する,と考える必要がありそうです。

ドキュメントの担当者に伝えたいと思います。

「2018.06.08卒業式」の「.08卒業式」は拡張子ではないですよ。 :mrgreen:

拡張子の判定について提案ですが、最後のピリオド以降を無条件で拡張子とするのではなくて、
JSONファイルで拡張子のリストを作ってcollectionに変換して該当するかしないか判定できないものでしょうか?

JSONファイルにするのは、ユーザー側で独自に拡張が可能な様にです。
アプリのリソースフォルダに基本的なものをいれておいて、
ストラクチャのリソースフォルダにコピーして配置するとそちらを優先する仕組みでどうでしょうか? :pray:

isFolderプロパティの判定ですが、どうも最後のフォルダーセパレータの有無みたいです。
POSIX変換にはおそらくConvert path system to POSIXコマンドをつかっていると思うので、
test path nameコマンド使ったほうが良いと思います。

ドキュメントに明記されていることですが,

このコマンドは『文字列』処理ユーティリティであってファイルシステムとは無関係です。

http://doc.4d.com/4Dv16R6/4D/16-R6/Path-to-object.301-3608257.ja.html

引用

path 引数に渡したパスの、最後の文字がパスタイプに対応するセパレータ(例えばWindows 上で"" など)だった場合、そのパスはフォルダパスだとみなされます。それ以外の場合には、渡されたパスはファイル名であるとみなされます。
Path to object は、文字列を受け取るだけであるという点に注意してください。パスが指定されたパスタイプに対して有効であるかをチェックすることはしませんし、指定されたファイルあるいはフォルダが実際に存在するかどうかもチェックはしません。

ファイルシステムAPIではありませんので,その点を踏まえて使用する必要があると思います。

そうなんですが、isFolderプロパティが宛にならないので提案しています。 :frowning:

test path nameで確認できなければ、フォルダーセパレーターで判定すれば良いかと思いました。
できればそれに合わせてisFolderはbooleanではなく、この辺りの状態を文字列か数値で返ってくるとありがたいです。