我需要确定用户提供的字符串是否是有效的文件路径(即createNewFile()
是否会成功或抛出异常),但我不想用无用的文件使文件系统变得臃肿,这些文件只是为了验证目的而创建的。
有没有一种方法可以在不尝试创建文件的情况下确定我拥有的字符串是否为有效的文件路径?
我知道“有效文件路径”的定义根据操作系统的不同而有所不同,但我想知道是否有任何快速接受C:/foo
或/foo
并拒绝banana
的方法。
一种可能的方法是尝试创建文件,如果创建成功,则最终将其删除,但我希望有一种更优雅的方法来实现相同的结果。
发布于 2009-01-22 11:41:55
这也将检查该目录是否存在。
File file = new File("c:\\cygwin\\cygwin.bat");
if (!file.isDirectory())
file = file.getParentFile();
if (file.exists()){
...
}
看起来file.canWrite()并没有给你一个明确的指示,如果你有写目录的权限。
发布于 2011-07-15 02:07:01
boolean canWrite(File file) {
if (file.exists()) {
return file.canWrite();
}
else {
try {
file.createNewFile();
file.delete();
return true;
}
catch (Exception e) {
return false;
}
}
}
https://stackoverflow.com/questions/468789
复制相似问题