2

私が行っている Java 作業の 100% は Android で行われています。ファイル パスを作成するときは、常に「/」の代わりにFile.pathSeparator File.separatorChar を使用するようにしています。

File.pathSeperator の値を決定するものは何ですか? File.pathSeparator File.separatorChar が "/" にならない Android デバイスはありますか?

4

2 に答える 2

1

File.java のソース コードによるとpathSeparator、 char からプルされSystem.getProperty("path.separator", ":").charAt(0)ます。separator、一方、から来ていSystem.getProperty("file.separator", "/").charAt(0)ます。

Android は Linux ベースであるため、常に/. ただし、上記のデフォルト値を使用すると、代わりに表示されるグリッチ:(Motorola Droid;バグ レポートを参照) が見られます。

私がコーディングするときは、常に/... を使用しますFile。に固執するのが最善/だと思います。

さらに、この回答(Android だけでなく Java に関するもの) によると/、すべての Java プラットフォームで安全に使用でき、内部で使用する必要があるものを把握します。

于 2012-08-08T20:12:21.417 に答える
1

私はあなたが意味するFile.separatorと思いますよFile.separatorCharね?ドキュメントを見ると、次のように記載されています。

public static final char separatorChar

ファイル名のコンポーネントを区切るために使用されるシステム依存の文字 ('/')。これを (ハードコーディング '/' ではなく) 使用すると、他のオペレーティング システムへの移植性が向上します。

このフィールドは、システム プロパティ「file.separator」から初期化されます。そのプロパティを後で変更しても、このフィールドまたはこのクラスには影響しません。

これはシステムに依存します。技術的には、誰かが Linux 以外のプラットフォーム ( BlueStacksを参照) に Android を実装する可能性があります。パスの区切り文字は「/」以外です。実際には、「/」を使用してもほとんど問題はないと思いますが、代わりにこれらのフィールドを使用するのは良い習慣です。

于 2012-08-08T20:14:58.533 に答える