我想列出目录中文件的数量。但我无法这样做,我怀疑它与父目录名称中的空格有关。
什么我做的是在.properties文件中我设置为值 -目录名中带有空格的文件对象
dir.loc=H:/Main/dir one/dir - two/dir3/dir four
dir.name=Run
现在在java的文件,我设置这些值的字符串变量 -
String s1 = properties.getProperty("dir.loc");
String s2 = properties.getProperty("dir.name");
我创建了一个文件对象 -
File f = new File(s1, s2);
File[] fList = f.listFiles();
现在,这里的fList
是null
;
H驱动器在另一台远程机器上,我认为java程序试图在本地定位'运行'目录,而不是在H驱动器上找到它,并且因为它找不到'运行'列表返回null
。
当我在一个简单的Java类尝试作为 -
File f = new File("H:/Main/dir one/dir - two/dir3/dir four", "Run");
然后我得到与f.listFiles().length;
所以结果我猜它可能必须做一些与提取值从属性文件和分配给一个String变量。
我的假设是否正确?
这个问题有什么可能的解决办法?
如何加载属性以及`new File(s1,s2).getAbsolutePath()`的值是什么? – 2011-12-15 10:38:35
这就是'getAbsolutePath()`得到的打印为'H:\ Main \ dir one \ dir - two \ dir3 \ dir four \ Run',我将属性文件简单地加载为``properties.load(Thread。 currentThread).getContextClassLoader()。getResourceAsStream(“Test.properties”));` – 2011-12-15 10:49:20
好吧,它似乎没有什么不同,在你的“直接”例子中,那有什么奇怪的。在驱动器“H”上重新检查您的访问权限;此外,您可以尝试设置UNC路径(以\\ machine \ share \ target`的形式)。 – 2011-12-15 11:54:07