目录名称中包含空格的文件对象

时间:2011-12-15 09:30:06

标签: java file-io

我正在尝试列出目录中的文件数。但是我无法理解,我怀疑它与父目录名称中的空白区域有关 我正在做的是在.properties文件中我将值设置为 -

dir.loc=H:/Main/dir one/dir - two/dir3/dir four  
dir.name=Run

现在在jave文件中,我将这些值设置为String变量为 -

String s1 = properties.getProperty("dir.loc");
String s2 = properties.getProperty("dir.name");

我创建了一个File对象 -

File f = new File(s1, s2);
File[] fList = f.listFiles();  

现在,fListnull;
H驱动器在另一台远程计算机上,我认为java程序试图在本地找到“运行”目录,而不是在H驱动器上找到它,因为它没有找到“运行”列表返回null

当我尝试使用简单的java类时 -

File f = new File("H:/Main/dir one/dir - two/dir3/dir four", "Run");  

然后我用f.listFiles().length;

得到结果

所以我想它可能需要从属性文件中提取值并将其分配给String变量。

我的假设是否正确? 什么可能解决这个问题?

3 个答案:

答案 0 :(得分:2)

是的,你是对的。从属性文件中读取值时,值会被搞砸。 这样做:

dir.loc="H:/Main/dir one/dir - two/dir3/dir four" 

答案 1 :(得分:1)

好的,我找到了解决问题的方法,实际上非常简单 我做了以下 -

在属性文件中 -

dir.loc=H:/Main/dir one/dir - two/dir3/dir four/Run

在配置java文件中 -

String s1 = properties.getProperty("dir.loc");

在我的java程序中 -

File tempF = new File(s1);
File dirLoc = new File(tempF.getAbsolutePath());

dirLoc.listFiles().length;给出一个数字。

@barti_ddu关于getAbsolutePath()的评论让我想到可能正在使用它。
这个解决方案有什么问题,还是不太合适?

谢谢大家。

答案 2 :(得分:0)

看起来您只需要修剪属性的值。 在您显示的代码中,

  dir.loc=H:/Main/dir one/dir - two/dir3/dir four   

有尾随空格。

这是:

String s1 = properties.getProperty("dir.loc").trim();
String s2 = properties.getProperty("dir.name").trim();

修好吗?