【注】:本代码摘自 http://www.java2s.com
keyword:Ftp client gets server file size
import java.io.IOException;
import java.util.StringTokenizer;
import sun.net.TelnetInputStream;
import sun.net.ftp.FtpClient;
public class FtpGetFileSizeDemo {
public static int BUFFER_SIZE = 10240;
private FtpClient m_client;
private String host = "";
private String user = "";
private String password = "";
private String sDir = "";
public FtpGetFileSizeDemo() {
try {
System.out.println("Connecting to host " + host);
m_client = new FtpClient(host);
m_client.login(user, password);
System.out.println("User " + user + " login OK");
System.out.println(m_client.welcomeMsg);
m_client.cd(sDir);
System.out.println("Directory: " + sDir);
m_client.binary();
System.out.println("Success.");
} catch (Exception ex) {
System.out.println("Error: " + ex.toString());
}
}
protected void disconnect() {
if (m_client != null) {
try {
m_client.closeServer();
} catch (IOException ex) {
}
m_client = null;
}
}
public static int getFileSize(FtpClient client, String fileName)
throws IOException {
TelnetInputStream lst = client.list();
String str = "";
fileName = fileName.toLowerCase();
while (true) {
int c = lst.read();
char ch = (char) c;
if (c < 0 || ch == '\n') {
str = str.toLowerCase();
if (str.indexOf(fileName) >= 0) {
StringTokenizer tk = new StringTokenizer(str);
int index = 0;
while (tk.hasMoreTokens()) {
String token = tk.nextToken();
if (index == 4)
try {
return Integer.parseInt(token);
} catch (NumberFormatException ex) {
return -1;
}
index++;
}
}
str = "";
}
if (c <= 0)
break;
str += ch;
}
return -1;
}
}
后来发现不能获得ftp里中文文件的大小,解决办法:
调用getFileSize() 之前先编解码,然后调用getFileSize,就O了,如:
fileName=new String(fileName.getBytes("GBK"),"ISO8859-1");
而不是在第50行 (fileName = fileName.toLowerCase(); )之后去调用fileName=new String(fileName.getBytes("GBK"),"ISO8859-1");
分享到:
相关推荐
### 获取FTP服务器文件大小的知识点解析 在进行网络文件传输时,经常需要了解远程文件的大小,以便于更好地控制文件的下载进度或者进行其他相关的管理操作。本文将围绕“获取FTP服务器文件的大小”这一主题展开,...
本篇文章将详细讲解如何编写源码来获取FTP服务器上的文件大小,这对于监控服务器存储空间或者自动化任务是非常实用的。 首先,我们需要了解基本的FTP工作原理。FTP基于TCP/IP协议,通过建立控制连接和数据连接来...
4. 获取文件大小: ```java long fileSize = ftpClient.listFiles("filename")[0].getSize(); ``` 5. 最后,断开连接: ```java ftpClient.logout(); ftpClient.disconnect(); ``` 注意,`listFiles()`方法返回一个...
例如,`java.io.File`类可以获取文件的基本信息,通过比较文件大小和修改时间进行初步判断。对于内容比较,可以使用`java.nio.file.Files`的`readAllBytes()`方法读取文件内容,然后进行字节对齐比较。如果文件较大...
System.out.println("文件大小:" + g.FormetFileSize(fileSizes)); } catch (Exception e) { e.printStackTrace(); } } ``` Java 获取文件夹大小、文件大小、文件个数可以通过使用 File 类和递归方法来实现。...
在Java中,我们可以使用`java.net`或`org.apache.commons.net`库来实现FTP文件上传。Apache Commons Net库提供了丰富的FTP功能,包括文件上传、下载、目录管理等,同时它也支持断点续传,对于大文件上传非常实用。 ...
FTP(File Transfer Protocol)是一种广泛使用的网络协议,用于在互联网上进行文件传输。断点续传是FTP的一个重要特性,允许用户在文件...了解这些知识点将使你能够高效地实现在Java环境中进行FTP文件的断点续传操作。
总结起来,这个项目提供了Java环境下的压缩和解压缩功能,包括ZIP、RAR(带密码)和GZ格式,以及FTP文件传输的实用工具类。开发者可以轻松地集成这些功能到他们的项目中,提高文件处理的便捷性。
下面将详细讲解如何使用Java的Swing库创建一个带有进度条的FTP文件上传功能。 首先,我们需要理解FTP的基本原理。FTP是一种用于在Internet上进行文件传输的标准协议。Java提供了一个内置的`java.net.FTPClient`类,...
在Java编程环境中,FTP(File Transfer Protocol)文件下载是一个常见的任务,特别是在处理大量数据传输时。本场景中,我们关注的重点是如何实现一个功能完善的FTP下载工具,它支持断点续传,即当下载中断后可以从...
在下载或上传文件前,需要检查本地是否有已部分传输的文件,并获取其大小作为重传的起始偏移量。 6. **错误处理与资源释放**: 在完成所有FTP操作后,必须正确关闭连接和释放资源。使用`FTPClient`的`disconnect()...
本资料包提供了一个简单的FTP Java源代码示例,帮助开发者理解和应用FTP文件传输。 在Java中,通常使用`java.net`和`java.io`库来实现FTP功能。`java.net.Socket`类用于创建网络连接,而`java.io`则处理输入和输出...
3. **获取文件信息**:在开始上传前,需要检查服务器上目标文件是否存在,如果存在则获取其当前大小,这将作为断点续传的起点。 4. **设置传输模式**:为了实现断点续传,需要将FTP传输模式设置为二进制模式...
Java 实现FTP客户端是网络编程中的一个重要话题,FTP(File Transfer Protocol)协议是用于在网络上...不过,实际应用中可能还需要考虑更多细节,如错误重试策略、多线程下载、文件大小检测等,以提高效率和稳定性。
- 获取文件大小:`FTPClient.listFiles()`,根据返回的列表找到目标文件的大小。 - 设置续传位置:`FTPClient.setRestartOffset(lastTransferredBytes)`。 - 开始续传:使用`retrieveFile()`或`storeFile()`。 6...
Apache Log4j是Java日志记录框架,它提供了灵活的日志记录控制,有助于调试和追踪FTP文件传输过程中的问题。 在Java中使用`common-net`进行FTP文件传输时,主要涉及以下知识点: 1. **FTPClient类**:这是`common-...
总的来说,Apache.FTPClient库提供了一套完整的FTP文件操作解决方案,使得开发者能够在Java应用程序中方便地处理FTP任务。通过封装和抽象,可以创建类似`FTPCommon`这样的类,将FTP操作封装成易于使用的服务,简化...
Java FTP(File Transfer Protocol)是Java编程中用于与FTP服务器交互的一种技术,它允许程序员编写应用程序来上传、下载文件,并实现断点续传功能。在本文中,我们将深入探讨Java FTP上传、下载以及断点续传的核心...
下载的处理方式类似,首先使用`listFiles()`获取文件列表,然后检查目标文件是否存在于本地,如果存在,通过`setRestartOffset()`设置本地文件的大小作为新的开始点。接着,调用`retrieveFile()`方法从服务器下载,...