0

我构建了 java web 应用程序。

我在我的类中编写了 1 个带有 2 个参数的函数。如果您将目录路径(.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;
}

我通过以下两种方式测试了这个功能。

情况1:

InputFiles我在桌面上创建了文件夹名称并将文件放在.txt文件InputFiles夹下。

我通过以下方式将directoryPathand.txt作为参数传递给我的函数。它工作正常。

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

案例二:

现在我将我的文件夹放在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 回答