0

私はJava Webアプリケーションを構築します。

クラスに2つの引数を持つ1つの関数を書きました.ディレクトリパス(.txtファイルが保存される場所)とファイルタイプを引数としてその関数に渡すと、指定されたファイル拡張子を持つすべてのファイル名が返されます.

  public List<File> ListOfFileNames(String directoryPath,String fileType)
{
    //Creating Object for File class
    File fileObject=new File(directoryPath);
    //Fetching all the FileNames under given Path
    File[] listOfFiles=fileObject.listFiles();
    //Creating another Array for saving fileNames, which are satisfying as far our requirements
    List<File> fileNames = new ArrayList<File>();
    for (int fileIndex = 0; fileIndex < listOfFiles.length; fileIndex++) 
    {
        if (listOfFiles[fileIndex].isFile())
        {
          //True condition,Array Index value is File
          if (listOfFiles[fileIndex].getName().endsWith(fileType)) 
          {
              //System.out.println(listOfFiles[fileIndex].getName());
              fileNames .add(listOfFiles[fileIndex]);
          }
        }  
    }
    return fileNames;
}

この機能を次の 2 つの方法でテストしました。

ケース 1:

InputFilesデスクトップと同じようにフォルダー名を作成し、フォルダー.txtの下にファイルを配置しましInputFilesた。

directoryPath次の方法でand.txtを引数として関数に渡します。正常に動作しています。

  classNameObject.Integration("C:/Documents and Settings/mahesh/Desktop/InputFiles",".txt");

ケース 2:

今、私は自分のInputFilesフォルダをフォルダの下に置き、次の方法で引数としてsrc渡します.それは機能していません.directoryPath

  classNameObject.Integration("/InputFiles",".txt"); 

ケース 2 を試している理由、別のシステムで同じアプリケーションで作業したい場合、毎回変更する必要はありませんdirectorypath

case 2アプリケーションをどこにデプロイするかわからないため、デプロイ時にも非常に便利ですcase 2

絶対パスに言及すると機能します.realPathに言及すると機能しません。

どうすればこれを修正できますか。

明確に説明できますか。

ケース 2 を試している理由を理解していただければ幸いです。

ありがとう。

4

1 に答える 1

0

まあ、いつでもユーザープロパティクラスを使用できます。プロパティファイルにパスを設定し、クラスでそのプロパティを名前で取得するだけです。また、プロパティ ファイルに記載されているパスを変更する必要があると感じた場合は、変更するとすぐに再読み込みされます。

于 2013-07-29T19:36:37.103 に答える