2012-01-25 6 views
1

私はプロパティファイルを持っており、その下に、私はと呼ばれるプロパティを定義します:Javaプロパティファイル

config.folder = C:\myfolder\configfolder 

今の問題は、プロパティをロードするときに、このプロパティは、私にこのような谷を返すということです。

C:myfolderconfigfolder 

この単一のスラッシュをバックスラッシュに置き換えて、正しいディレクトリパスを返すようにします。私はこれがJava.Stringに準拠していないことを知っています。ユーザーが二重スラッシュを使用している場合、私は変換することができますが、どのように変換することができますシングルスラッシュ。

答えて

2

に変更し、それを:config.folder = C:\\myfolder\\configfolder

3

より良いアプローチはそうのように、スラッシュを転送するために、バックスラッシュからスラッシュを変更することです:

config.folder = C:/myfolde/configfolder 

Javaは、この構造を解釈する方法を知っています。

+0

私はあなたの答えを逆さまに読んでいない限り、逆スラッシュからスラッシュまで逆の意味を持っていることを望みます。 – adarshr

+1

@adarshr、私は通常、これらのスラッシュと混同しています。私は声明を修正した、ありがとう!。笑 –

1

私はあなたがこのすなわちfile.separator

文字列fileSeparator =はSystem.getProperty( "file.separator")のためのシステムのプロパティの使用を開始することを提案します。

String str = "C:/myfolder/configfolder"; 
String fileSeparator = System.getProperty("file.separator"); 
str= str.replace("/", fileSeparator); 
System.out.println(str); 

OUTPUTは次のとおりです:このアプローチは、あなたがファイルとして「/」を持つ例UNIXのいずれかのOSでプログラムを実装するのに役立つかもしれない

C:\myfolder\configfolder 

は、今のようにパスを持って言いますファイルパスの各コンポーネントの区切り文字と、ファイルパスのコンポーネントのファイル区切り文字として「\」を含むWINDOWSの区切り文字です。

これは何らかの形で役立ちます。

よろしく

+0

それはうまくいくが、このようにするのは本当に必要ではない。 – adarshr

+0

@adarshr:私のこの編集を見て、別のオペレーティングシステムでこの方法をヒックアップせずに使うことのメリットを伝えてください。よろしく。 –

+0

合意したところでは、 'C:/ myfolder/configfolder'というプロパティを持っているだけで、ほとんどのJavaアプリケーションで動作すると言います。通常は、'/'と' \ 'の両方で動作するインテリジェンスと柔軟性があります。 – adarshr

1

リテラルファイルパスで遊ぶための最良の方法は、ファイル区切りをiestringシステムプロパティを使用することです=はSystem.getProperty(「file.separator」)、あなたが取得するウルスラッシュでそれを置き換えることができますファイルのパスは

関連する問題