/** * Check that the file given by the string path (or directory, if flagged) exists and is readable. * * @param file the absolute path to the file * @param checkDirectory check as a directory if this flag set * @throws StandardException */ public static void validateReadable(String file, boolean checkDirectory) throws StandardException { if (file == null) return; DistributedFileSystem fsLayer = getFileSystem(file); FileInfo info; try { info = fsLayer.getInfo(file); } catch (IOException e) { throw Exceptions.parseException(e); } if (!info.exists() || (checkDirectory && info.isDirectory())) throw ErrorState.LANG_FILE_DOES_NOT_EXIST.newException(file); if (!info.isReadable()) { throw ErrorState.LANG_NO_READ_PERMISSION.newException(info.getUser(), info.getGroup(), file); } }
/** * ValidateWritable FileSystem * * @param path the path to check * @param checkDirectory if true, then ensure that the file specified by {@code path} is not a * directory * @throws StandardException */ public static void validateWritable(String path, boolean checkDirectory) throws StandardException { // check that the badLogDirectory exists and is writable if (path == null) return; DistributedFileSystem fsLayer = getFileSystem(path); FileInfo info; try { info = fsLayer.getInfo(path); } catch (IOException e) { throw Exceptions.parseException(e); } if (checkDirectory && !info.isDirectory()) { throw ErrorState.DATA_FILE_NOT_FOUND.newException(path); } if (!info.isWritable()) { throw ErrorState.LANG_NO_WRITE_PERMISSION.newException(info.getUser(), info.getGroup(), path); } }
/** * Return the total space consumed by the import data files. * * @return total space consumed by the import data files * @throws IOException */ public static FileInfo getImportFileInfo(String filePath) throws StandardException, IOException { DistributedFileSystem fsLayer = getFileSystem(filePath); return fsLayer.getInfo(filePath); }