在找到更好的解决方案之前,请先做以下临时工作:
public Path getRootPath(FileStore fs) throws IOException { Path media = Paths.get("/media"); if (media.isAbsolute() && Files.exists(media)) { // Linux try (DirectoryStream<Path> stream = Files.newDirectoryStream(media)) { for (Path p : stream) { if (Files.getFileStore(p).equals(fs)) { return p; } } } } else { // Windows IOException ex = null; for (Path p : FileSystems.getDefault().getRootDirectories()) { try { if (Files.getFileStore(p).equals(fs)) { return p; } } catch (IOException e) { ex = e; } } if (ex != null) { throw ex; } } return null;}
据我所知,该解决方案仅适用于Windows和Linux系统。
您必须抓住
IOExceptionWindows循环,因为如果CD驱动器中没有CD,则在尝试为其检索CD时会引发异常
FileStore。在遍历每个根之前可能会发生这种情况。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)