0

指定されたディレクトリの場所にファイルが存在するかどうかを確認しようとしています。

File seacrhFile = new File("D:/input", contract.conf);
if (seacrhFile.exists()) {
  returnFile = seacrhFile;
} else {
  System.out.println("No such file exists");
}
reutrn returnFile;

これはD:/inputディレクトリのシナリオで機能していますが、ディレクトリの場所をsrc/test/resources/inputフォルダーに変更するNo such file existsと、ファイルが存在するにもかかわらず、.

4

2 に答える 2

1


src/test/resources/inputにアクセスしたい場合は、
おそらく使用する必要があります

System.getProperty("user.dir") + File.separator + "src/test/resources/input"

システムプロパティ「user.dir」がプロジェクトの場所を指しているためです。

「src/test/resources/input」のみを使用すると、ファイル オブジェクトがプロジェクトの場所で「開始」されないため、上記の例外が発生します。そのため、手動で指定する必要があります。

それでも、getResource-Method を使用してプロジェクト内のさまざまなリソースを取得することをお勧めします。これは、jar ファイルを使用してプロジェクトを実行する場合、「user.dir」が正しく機能するように微調整する必要があるためです。

Classloader の基本的な例:

ClassLoader.getSystemClassLoader().getResource("test/resources/input");

これは URL-Object を返します。このオブジェクトを使用すると、... を使用して File-Object を取得できます。

URL filePath =  ClassLoader.getSystemClassLoader().getResource("test/resources/input");
File file = new File( filePath.toURI() );
于 2012-07-24T09:54:21.907 に答える
0

src を削除して、もう一度試してください。

于 2012-07-24T09:55:50.653 に答える