List of usage examples for org.apache.commons.net.ftp FTPFile getSize
public long getSize()
From source file:org.paxle.crawler.ftp.impl.FtpUrlConnection.java
private static void formatStdDirlisting(final OutputStream into, final FTPListParseEngine fileParseEngine) { final Formatter writer = new Formatter(into); FTPFile[] files;/*from ww w .j a va2 s . c o m*/ while (fileParseEngine.hasNext()) { files = fileParseEngine.getNext(16); for (final FTPFile file : files) { if (file == null) continue; // directory char c; switch (file.getType()) { case FTPFile.DIRECTORY_TYPE: c = 'd'; break; case FTPFile.SYMBOLIC_LINK_TYPE: c = 's'; break; default: c = '-'; break; } writer.format("%c", Character.valueOf(c)); // permissions for (final int access : FILE_ACCESS_MODES) { writer.format("%c%c%c", Character.valueOf(file.hasPermission(access, FTPFile.READ_PERMISSION) ? 'r' : '-'), Character.valueOf(file.hasPermission(access, FTPFile.WRITE_PERMISSION) ? 'w' : '-'), Character.valueOf(file.hasPermission(access, FTPFile.EXECUTE_PERMISSION) ? 'x' : '-')); } // other information writer.format(" %2d", Integer.valueOf(file.getHardLinkCount())); writer.format(" %8s", file.getUser()); writer.format(" %8s", file.getGroup()); writer.format(" %12d", Long.valueOf(file.getSize())); writer.format(" %1$tY-%1$tm-%1$td %1$tH:%1$tM", Long.valueOf(file.getTimestamp().getTimeInMillis())); writer.format(" %s", file.getName()); writer.format("%s", System.getProperty("line.separator")); } } writer.flush(); }
From source file:org.paxle.crawler.ftp.impl.FtpUrlConnection.java
@Override public int getContentLength() { if (!this.client.isConnected() || this.isDirectory) return -1; int size = -1; try {/*from w ww. ja va 2s . c om*/ FTPFile file = this.findFile(); if (file != null) { size = (int) file.getSize(); } } catch (IOException e) { e.printStackTrace(); } return size; }
From source file:org.punksearch.crawler.adapters.FtpAdapterTest.java
public void testGetSize() { FTPFile file = getSomeFile(); assertEquals(file.getSize(), adapter.getSize(new FtpItem(file, null))); }
From source file:org.ramadda.repository.type.FtpTypeHandler.java
/** * _more_/*from ww w .jav a 2 s .c om*/ * * @param request _more_ * @param parentEntry _more_ * @param id _more_ * * @return _more_ * * @throws Exception _more_ */ public Entry makeSynthEntry(Request request, Entry parentEntry, String id) throws Exception { Object[] values = parentEntry.getValues(); if (values == null) { return null; } String baseDir = (String) values[COL_BASEDIR]; String server = (String) values[COL_SERVER]; MyFTPFile myFtpFile = getFileFromId(parentEntry, id, baseDir); if (myFtpFile == null) { return null; } if (myFtpFile.path.equals(baseDir)) { return parentEntry; } FTPFile ftpFile = myFtpFile.ftpFile; TypeHandler handler = (ftpFile.isDirectory() ? getRepository().getTypeHandler(TypeHandler.TYPE_GROUP) : getRepository().getTypeHandler(TypeHandler.TYPE_FILE)); handler = this; String synthId = Repository.ID_PREFIX_SYNTH + parentEntry.getId() + ":" + id; boolean isDir = ftpFile.isDirectory(); Entry entry = (isDir ? (Entry) new Entry(synthId, handler, true) : new Entry(synthId, handler)); String name = IOUtil.getFileTail(ftpFile.getName()); entry.setIsLocalFile(true); Entry parent; if (myFtpFile.path.equals(baseDir)) { parent = (Entry) parentEntry; } else { File tmp = new File(myFtpFile.path); String parentPath = tmp.getParent().replace("\\", "/"); String parentId = getSynthId(parentEntry, baseDir, parentPath); if (parentPath.equals(baseDir)) { parent = (Entry) parentEntry; } else { parent = (Entry) getEntryManager().getEntry(request, parentId, false, false); } } double maxSize = 0; if (values[COL_MAXSIZE] != null) { maxSize = ((Double) values[COL_MAXSIZE]).doubleValue(); } long dttm = ftpFile.getTimestamp().getTime().getTime(); /* String datePattern = (String)values[COL_DATE_PATTERN]; //TODO cache the compiled patterns if(datePattern!=null && datePattern.length()>0) { Pattern p = Pattern.compile(datePattern); Matcher m = p.matcher(path); if(m.matches()) { String dateString = m.group(1); String dateFormat = (String)values[COL_DATE_FORMAT]; Date date=null; if(dateFormat!=null && dateFormat.length()==0) { date = new SimpleDateFormat(dateFormat).parse(dateString); } else { date = DateUtil.parse(dateString); } dttm = date.getTime(); } } */ Resource resource; if (isDir) { resource = new Resource("ftp://" + server + myFtpFile.path, Resource.TYPE_URL); } else { if (ftpFile.getSize() > 1000000 * maxSize) { resource = new Resource("ftp://" + server + myFtpFile.path, Resource.TYPE_URL); } else { resource = new Resource(name, Resource.TYPE_REMOTE_FILE); } resource.setFileSize(ftpFile.getSize()); } entry.initEntry(name, "", parent, getUserManager().getLocalFileUser(), resource, "", dttm, dttm, dttm, dttm, null); return entry; }
From source file:org.runmyprocess.sec.FTP.java
private void listFiles(JSONObject jsonObject) throws Exception { // get all files from server and store them in an array of // FTPFiles/*from w w w.jav a 2s .c om*/ JSONArray fileInfo = new JSONArray(); LOG.log("LIST directories: " + jsonObject.getString("path"), Level.INFO); String[] directories = this.client.listNames(jsonObject.getString("path")); LOG.log("LIST files: " + jsonObject.getString("path"), Level.INFO); FTPFile[] files = this.client.listFiles(jsonObject.getString("path")); LOG.log("LIST DONE", Level.INFO); for (FTPFile file : files) { if (file.getType() == FTPFile.FILE_TYPE) { JSONObject fileObject = new JSONObject(); fileObject.put("Name", file.getName()); fileObject.put("Size", FileUtils.byteCountToDisplaySize(file.getSize())); fileObject.put("Timestamp", file.getTimestamp().getTime().toString()); fileInfo.add(fileObject); } } response.setStatus(200);//sets the return status to 200 JSONObject resp = new JSONObject(); resp.put("files", fileInfo);//sends the info inside an object resp.put("directories", directories); response.setData(resp); }
From source file:org.teiid.resource.adapter.ftp.FtpFileSystem.java
@Override public long getSize(VirtualFile mountPoint, VirtualFile target) { try {/* w w w . j ava 2s . c o m*/ FTPFile file = this.client.mlistFile(target.getName()); return file != null ? file.getSize() : -1; } catch (IOException e) { throw new FtpOperationException(e); } }
From source file:org.ut.biolab.medsavant.shared.util.SeekableFTPStream.java
@Override public long length() { if (length == 0) { FTPFile[] files;// w ww .j a v a 2s . c o m try { files = listFiles(fileName); } catch (IOException e) { try { disconnect(); files = listFiles(fileName); } catch (IOException e1) { LOG.warn("Unable to reconnect getting length"); return 0; } } for (int i = 0; i < files.length; i++) { FTPFile file = files[i]; if (file != null) { if (file.getName().equals(fileName)) { length = file.getSize(); break; } } } } return length; }
From source file:pt.lsts.neptus.util.logdownload.LogsDownloaderWorkerActions.java
/** * Process the serversLogPresenceList and gets the actual log files/folder for each base log folder. This is done by * iterating the {@link LogsDownloaderWorker#getServersList()} depending on its presence. * /*from w w w .ja v a 2 s . c o m*/ * @param serversLogPresenceList Map for each base log folder and servers presence as values (space separated list * of servers keys) * @return */ private LinkedList<LogFolderInfo> getFromServersCompleteLogList( LinkedHashMap<String, String> serversLogPresenceList) { if (serversLogPresenceList.size() == 0) return new LinkedList<LogFolderInfo>(); long timeF0 = System.currentTimeMillis(); LinkedList<LogFolderInfo> tmpLogFolders = new LinkedList<LogFolderInfo>(); try { ArrayList<String> servers = worker.getServersList(); for (String serverKey : servers) { // Let's iterate by servers first if (stopLogListProcessing) break; if (!worker.isServerAvailable(serverKey)) continue; FtpDownloader ftpServer = null; try { ftpServer = LogsDownloaderWorkerUtil.getOrRenewFtpDownloader(serverKey, worker.getFtpDownloaders(), worker.getHostFor(serverKey), worker.getPortFor(serverKey)); } catch (Exception e) { e.printStackTrace(); } if (ftpServer == null) continue; // String host = worker.getHostFor(serverKey); // To fill the log files host info String host = serverKey; // Using a key instead of host directly for (String logDir : serversLogPresenceList.keySet()) { // For the server go through the folders if (stopLogListProcessing) break; if (!serversLogPresenceList.get(logDir).contains(serverKey)) continue; // This is needed to avoid problems with non English languages String isoStr = new String(logDir.getBytes(), "ISO-8859-1"); LogFolderInfo lFolder = null; for (LogFolderInfo lfi : tmpLogFolders) { if (lfi.getName().equals(logDir)) { lFolder = lfi; break; } } if (lFolder == null) lFolder = new LogFolderInfo(logDir); if (!ftpServer.isConnected()) ftpServer.renewClient(); try { FTPFile[] files = ftpServer.getClient().listFiles("/" + isoStr + "/"); for (FTPFile file : files) { if (stopLogListProcessing) break; String name = logDir + "/" + file.getName(); String uriPartial = logDir + "/" + file.getName(); LogFileInfo logFileTmp = new LogFileInfo(name); logFileTmp.setUriPartial(uriPartial); logFileTmp.setSize(file.getSize()); logFileTmp.setFile(file); logFileTmp.setHost(host); // Let us see if its a directory if (file.isDirectory()) { logFileTmp.setSize(-1); // Set size to -1 if directory long allSize = 0; // Here there are no directories, considering only 2 folder layers only, e.g. "Photos/00000" LinkedHashMap<String, FTPFile> dirListing = ftpServer .listDirectory(logFileTmp.getName()); ArrayList<LogFileInfo> directoryContents = new ArrayList<>(); for (String fName : dirListing.keySet()) { if (stopLogListProcessing) break; FTPFile fFile = dirListing.get(fName); String fURIPartial = fName; LogFileInfo fLogFileTmp = new LogFileInfo(fName); fLogFileTmp.setUriPartial(fURIPartial); fLogFileTmp.setSize(fFile.getSize()); fLogFileTmp.setFile(fFile); fLogFileTmp.setHost(host); allSize += fLogFileTmp.getSize(); directoryContents.add(fLogFileTmp); } logFileTmp.setDirectoryContents(directoryContents); logFileTmp.setSize(allSize); } lFolder.addFile(logFileTmp); tmpLogFolders.add(lFolder); } } catch (Exception e) { System.err.println(isoStr); e.printStackTrace(); } } } } catch (Exception e) { e.printStackTrace(); } NeptusLog.pub().warn(".......Contacting remote systems for complete log file list " + (System.currentTimeMillis() - timeF0) + "ms"); return tmpLogFolders; }
From source file:ro.kuberam.libs.java.ftclient.FTP.FTP.java
private static void _generateResourceElement(XMLStreamWriter xmlWriter, FTPFile resource, InputStream is, String resourceAbsolutePath) throws IOException, Exception { String resourceName = resource.getName(); String resourceType = ((resource.getType() == 1) ? "directory" : (((resource.getType() == 0) ? "file" : "link"))); Calendar resourceTimeStamp = resource.getTimestamp(); DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ"); String lastModified = formatter.format(resourceTimeStamp.getTimeInMillis()); lastModified = lastModified.replace(" ", "T"); lastModified = lastModified.substring(0, 22) + ":" + lastModified.substring(22, 24); long resourceSize = resource.getSize(); String user = resource.getUser(); String userGroup = resource.getGroup(); String permissions = resource.getRawListing().substring(0, 10); String linkTo = resource.getLink(); GenerateResourceElement.run(is, xmlWriter, modulePrefix, moduleNsUri, resourceName, resourceType, resourceAbsolutePath, lastModified, resourceSize, user, userGroup, permissions, linkTo); }
From source file:savant.agp.HTTPBrowser.java
/** * Get a nicely formatted string describing the file's size. * // w w w . ja va2 s . co m * @param f the FTP entry whose size we're displaying * @return a string describing the size, or null if f is a directory */ private static String getSizeString(FTPFile f) { if (f != null && f.isFile()) { long size = f.getSize(); if (size < 1E6) { return String.format("%.2f kB", size / 1.0E3); } else if (size < 1E9) { return String.format("%.2f MB", size / 1.0E6); } else { return String.format("%.2f GB", size / 1.0E9); } } return null; }