LocalFile extends ProtocolFile { public static AbstractFile[] getVolumes() { Vector<AbstractFile> volumesV = new Vector<AbstractFile>(); if(OsFamily.MAC_OS_X.isCurrent()) { addMacOSXVolumes(volumesV); } else { addJavaIoFileRoots(volumesV); if(OsFamily.getCurrent().isUnixBased()) addMountEntries(volumesV); } AbstractFile homeFolder = getUserHome(); if(!(homeFolder==null || volumesV.contains(homeFolder))) volumesV.add(homeFolder); AbstractFile volumes[] = new AbstractFile[volumesV.size()]; volumesV.toArray(volumes); return volumes; } protected  LocalFile(FileURL fileURL); protected  LocalFile(FileURL fileURL, File file); static AbstractFile getUserHome(); boolean guessRemovableDrive(); static boolean hasRootDrives(); static AbstractFile[] getVolumes(); @Override Object getUnderlyingFileObject(); @Override boolean isSymlink(); @Override boolean isSystem(); @Override long getDate(); @Override void changeDate(long lastModified); @Override long getSize(); @Override AbstractFile getParent(); @Override void setParent(AbstractFile parent); @Override boolean exists(); @Override FilePermissions getPermissions(); @Override PermissionBits getChangeablePermissions(); @Override void changePermission(PermissionAccess access, PermissionType permission, boolean enabled); @Override String getOwner(); @Override boolean canGetOwner(); @Override String getGroup(); @Override boolean canGetGroup(); @Override boolean isDirectory(); @Override InputStream getInputStream(); @Override OutputStream getOutputStream(); @Override OutputStream getAppendOutputStream(); @Override RandomAccessInputStream getRandomAccessInputStream(); @Override RandomAccessOutputStream getRandomAccessOutputStream(); @Override void delete(); @Override AbstractFile[] ls(); @Override void mkdir(); @Override void renameTo(AbstractFile destFile); @Override long getFreeSpace(); @Override long getTotalSpace(); @Override @UnsupportedFileOperation void copyRemotelyTo(AbstractFile destFile); @Override String getName(); @Override String getAbsolutePath(); @Override String getCanonicalPath(); @Override String getSeparator(); @Override AbstractFile[] ls(FilenameFilter filenameFilter); @Override boolean isHidden(); @Override boolean canRead(); @Override AbstractFile getRoot(); @Override boolean isRoot(); @Override AbstractFile getVolume(); final static String SEPARATOR; final static boolean USES_ROOT_DRIVES; final static String SCHEMA; static final String[] KNOWN_UNIX_FS; }
@Test public void testVolumes() throws IOException { AbstractFile[] volumes = LocalFile.getVolumes(); assert volumes != null; assert volumes.length>0; for (AbstractFile volume : volumes) testVolume(volume); }