File.mkdir 不起作用,我不明白为什么
我有这个简短的片段:
String target = baseFolder.toString() + entryName;
target = target.substring(0, target.length() - 1);
File targetdir = new File(target);
if (!targetdir.mkdirs()) {
throw new Exception("Errore nell'estrazione del file zip");
}
如果我留下最后一个字符(通常是斜杠)并不重要。这样做可以在 UNIX 和 Windows 上工作。该路径实际上是从基本文件夹的 URI 中获取的。正如您从 baseFolder.toString() 中看到的那样(baseFolder 是 URI 类型并且是正确的)。基本文件夹确实存在。我无法调试这个,因为我从 mkdir 得到的都是真或假,没有其他解释。奇怪的是,baseFolder 也是使用 mkdir 创建的,在这种情况下它可以工作。
现在我在窗户下。
创建 targetdir 之前的 target 值为“file:/C:/Users/dario/jCommesse/jCommesseDB” 如果我在 Windows 浏览器中剪切并粘贴它(没有最后一个条目),它就可以工作......
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您提供的路径不是文件路径,而是 URI。
我建议您尝试以下操作:
The path you provide is not a file path, but a URI.
I suggest you try the following :
在我看来,好像开头的“file:/”就是问题所在......尝试 getAbsolutePath() 而不是 toString()。
It looks, to me, as if the "file:/" at the beginning is the problem... Try getAbsolutePath() instead of toString().
String
的 >File 构造函数需要一个路径名。路径名不是 URI。从字符串前面删除
file:/
(或者更好的是,使用getPath()
而不是toString()
) 获取您需要的路径。The
File
constructor taking aString
expects a path name. A path name is not an URI.Remove the
file:/
from the front of the String (or better yet, usegetPath()
instead oftoString()
) to get to the path you need.