如何动态读取文件夹路径?

时间:2016-07-10 12:23:52

标签: java

假设我有像

这样的路径
  

“的JBoss /服务器/默认/部署/ Product_071016.ear / Product_071016.war / WEB-INF /类/”

我想使用java读取此路径并在classes文件夹中创建一个新文件。硬编码不是一种选择,它需要具有适应性。

在此路径中Product_071016.earProduct_071016.war名称更改(即日期,月份,年份附加在“_”之后)。 我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

根据您的要求,您可以选择一些选项,例如:

  1. 有一个配置文件,例如: paths.properties

    其中包含每条动态变化的路径,作为每行中的key/value对。您可以找到.properties个文件here的格式。键是 CONSTANT 名称。每次路径更改时,都应该在 paths.properties 中更改赋值给此常量键的值。由于您可以使用Properties中的java对象加载此配置文件,因此您可以通过将{<1>} CONSTANT 键添加到Properties来获取更改后的路径对象。 Properties以某种方式定制Map来处理.properties个文件。

    paths.properties 的内容可以是这样的:

     PATH_TO_CLASSES_FOLDER=jboss/server/Default/deploy/Product_071016.ear/Product_071016.war/web-inf/classes/
    

    因此,在使用key/values对象从.properties文件加载Properties后,通过提供密钥PATH_TO_CLASSES_FOLDER,您将获得存储在文件中的所需路径。 / p>

  2. 您可以在每个操作系统中设置System Variable,然后您可以使用以下代码行在java中读取它的值:

    String pathToClassesFolder = System.getenv("PATH_TO_CLASSES");
    
  3. 使用任何一种方法,您都没有对代码中的任何动态路径进行硬编码,并且实现了要求。即使您不想对配置文件的路径进行硬编码,也可以将两种方式结合起来:

    1. 将配置文件的路径定义为System Variable

    2. 读取配置文件的路径,然后通过Properties对象加载它,并使用PATH_TO_CLASSES_FOLDER键获取classes文件夹路径。

    3. 祝你好运。