首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java中有没有一种方法可以在不尝试创建文件的情况下确定路径是否有效?

在Java中有没有一种方法可以在不尝试创建文件的情况下确定路径是否有效?
EN

Stack Overflow用户
提问于 2009-01-22 11:39:27
回答 2查看 108.8K关注 0票数 86

我需要确定用户提供的字符串是否是有效的文件路径(即createNewFile()是否会成功或抛出异常),但我不想用无用的文件使文件系统变得臃肿,这些文件只是为了验证目的而创建的。

有没有一种方法可以在不尝试创建文件的情况下确定我拥有的字符串是否为有效的文件路径?

我知道“有效文件路径”的定义根据操作系统的不同而有所不同,但我想知道是否有任何快速接受C:/foo/foo并拒绝banana的方法。

一种可能的方法是尝试创建文件,如果创建成功,则最终将其删除,但我希望有一种更优雅的方法来实现相同的结果。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-01-22 11:41:55

这也将检查该目录是否存在。

代码语言:javascript
复制
File file = new File("c:\\cygwin\\cygwin.bat");
if (!file.isDirectory())
   file = file.getParentFile();
if (file.exists()){
    ...
}

看起来file.canWrite()并没有给你一个明确的指示,如果你有写目录的权限。

票数 40
EN

Stack Overflow用户

发布于 2011-07-15 02:07:01

代码语言:javascript
复制
boolean canWrite(File file) {
  if (file.exists()) {
    return file.canWrite();
  }
  else {
    try {
      file.createNewFile();
      file.delete();
      return true;
    }
    catch (Exception e) {
      return false;
    }
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/468789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档