ファイル区切り文字について
特定のパスからファイルを参照する時、ファイル区切り文字を文字列で指定してませんか?
ちなみにファイル区切り文字とはファイルのパス指定において、パスとファイルを区切るときに使用する「¥」「\」「/」「:」などの文字のことです。
例えばこんな感じ。※私はOSごとの区切り文字を把握しておりません!
//Windows
String path = "AAA¥¥BBB¥¥java.txt";
//Linux
String path = "AAA/BBB/java.txt";
//Mac しらん
区切り文字ってプラットフォームによって指定方法が異なるそうなんです。
これを知らなくて、このOSなら動いたけどこっちのOSでは動かないよー ってなったりします。
それじゃあOSを判断すれば・・・
String os = System.getProperty("os.name");
if (os.indexOf("Windows") >= 0){
// Windows
String path = "AAA¥¥BBB¥¥java.txt";
} else if (os.indexOf("Linux") >= 0) {
// Linux
String path = "AAA/BBB/java.txt";
} else if(os.indexOf("Mac") >= 0){
// MacOS
} else {
// その他
}
処理にもよりますが、今回のケースではあまりにも冗長ですよね・・・
File.separatorを使おう
解決策の結論を言うと、「 File.separator」を使用しましょう。
プラットフォームに合わせて区切り文字を判別してくれます。
こんな感じ。はい、これだけ!
String path = "AAA" + File.separator + "BBB" + File.separator + "1.mht";
Javaはマルチプラットフォームな言語ですので、OSごとの特性を考えて実装しないとですね。
なんて言ったってご存知の通り30億のデバイスで動く言語ですので笑