使用的了apache的commons-net实现批量下载,上传,删除等功能:
java 代码
其中利用深度搜索机制来对*,?等通配符的支持:
java 代码
- import java.io.File;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Vector;
-
- public class BFSFileSearch {
-
-
-
-
-
-
-
-
-
-
- public void scanFiles(File base, String fileName, List fileList, int count) {
- Queue queue = new Queue();
- queue.put(base);
- while (!queue.isEmpty()) {
- File f = (File) queue.get();
- if (f.exists() && f.isDirectory()) {
- String[] files = f.list();
- for (int i = 0; i < files.length; i++) {
- File f2 = new File(f,
- files[i]);
- if (f2.isDirectory()) {
- queue.put(f2);
- } else {
- String filePath = f2.getAbsolutePath();
- filePath = filePath.substring(filePath.lastIndexOf("/") + 1);
- if (wildcardMatch(fileName,
- filePath)) {
- if (count != 0 && fileList.size() >= count) {
- return;
- }
- fileList.add(filePath);
- }
- }
- }
- }
- }
- }
-
-
-
-
-
-
-
- public List scanFiles(File base, String fileName) {
- Queue queue = new Queue();
- queue.put(base);
- List fileList = new ArrayList();
- while (!queue.isEmpty()) {
- File f = (File) queue.get();
- if (f.exists() && f.isDirectory()) {
- String[] files = f.list();
- for (int i = 0; i < files.length; i++) {
- File f2 = new File(f,
- files[i]);
- if (f2.isDirectory()) {
- queue.put(f2);
- } else {
- String filePath = f2.getAbsolutePath();
- filePath = filePath.substring(filePath.lastIndexOf("/") + 1);
- if (wildcardMatch(fileName,
- filePath)) {
- fileList.add(filePath);
- }
- }
- }
- }
- }
- return fileList;
- }
-
- public boolean wildcardMatch(String pattern, String string) {
- int stringLength = string.length();
- int stringIndex = 0;
- for (int patternIndex = 0; patternIndex < pattern.length(); ++patternIndex) {
- char c = pattern.charAt(patternIndex);
-
- if (c == '*') {
- while (stringIndex < stringLength) {
- if (wildcardMatch(pattern.substring(patternIndex + 1),
- string.substring(stringIndex))) {
- return true;
- }
- ++stringIndex;
- }
-
- } else if (c == '?') {
- ++stringIndex;
- if (stringIndex > stringLength) {
- return false;
- }
-
- } else {
- if (stringIndex >= stringLength
- || c != string.charAt(stringIndex)) {
- return false;
- }
- ++stringIndex;
- }
- }
- return stringIndex == stringLength;
- }
-
- class Queue {
- private Vector vector = new Vector();
-
- public void put(Object object) {
- vector.addElement(object);
- }
-
- public Object get() {
- Object object = peek();
- if (object != null) {
- vector.removeElementAt(0);
- }
- return object;
- }
-
- public Object peek() {
- if (isEmpty()) {
- return null;
- }
- return vector.elementAt(0);
- }
-
- public boolean isEmpty() {
- return vector.isEmpty();
- }
-
- public int size() {
- return vector.size();
- }
-
- }
- }
分享到:
相关推荐
此外,Java还提供了一个名为`org.apache.commons.net.ftp`的第三方库,它简化了FTP客户端和服务端的开发。这个库包含了FTPClient和FTPServer类,提供了许多预定义的方法来处理FTP操作,如登录、上传、下载、删除文件...
在这个“java FTP客户端程序”中,我们可以深入探讨如何使用Java来编写一个FTP客户端,以及涉及到的相关知识点。 首先,我们需要了解Java中的`java.net`和`java.io`这两个核心库,它们是实现FTP客户端的基础。`java...
总之,Java FTP客户端源代码提供了一个平台,让你可以利用Java的强大力量来实现文件的上传、下载和管理。通过学习和实践,你将能够掌握FTP通信的核心概念,并将这些知识应用到你的项目中,提升你的开发技能。
在开发Java FTP客户端时,开发者通常会使用Apache Commons Net库,这是一个强大的Java库,提供了许多预定义的FTP操作方法。例如,`FTPClient`类是核心类,它封装了所有与FTP服务器交互的方法。开发者可以使用`...
在这个名为"ftp.zip"的压缩包中,包含了一个FTP客户端程序,它使用Java编程语言编写,能够帮助用户实现文件的上传和下载功能。这个客户端程序非常实用,因为只需要安装JDK(Java Development Kit)就可以运行,无需...
Java提供了一个内置的`java.net.Socket`类,可以用于实现FTP协议,但更常见的是使用`java.net.URL`和`java.net.URLConnection`类,或者使用Apache Commons Net库,该库提供了更完善的FTP客户端功能,包括文件上传、...
在这个名为"java_ftp2.zip"的压缩包中,我们可以推测包含了一个使用Java编写的FTP客户端程序的相关资源。 首先,FTP客户端程序的核心功能包括连接到FTP服务器,登录验证,浏览服务器目录,下载或上传文件,以及断开...
在实际项目中,JavaFTP客户端通常会封装成一个易于使用的类或服务,以供其他模块调用。例如,`JMyFtpClient`可能是一个自定义的FTP客户端实现,提供了简洁的接口供开发者进行文件操作。 总结来说,JavaFTP客户端是...
本项目旨在提供一个基于Java的FTP客户端,以满足用户对远程文件系统的访问需求。以下是对这个项目的详细解读: 1. FTP协议基础: FTP是一种用于在网络上传输文件的标准协议,它允许用户从远程服务器获取文件或向其...
在这个"ftp.rar"压缩包中,我们关注的是一个用Java语言实现的FTP客户端。Java是一种跨平台的编程语言,它提供了丰富的库和API,使得开发FTP客户端成为可能。 FTP客户端是允许用户连接到FTP服务器并执行各种操作,...
在本文中,我们将深入探讨FTP服务端、FTP客户端以及如何在Java环境中实现FTP客户端。 FTP服务端是运行在服务器上的软件,它接收来自客户端的连接请求,处理文件传输操作,并管理用户权限。在Java中,可以使用Apache...
通过以上知识点,我们可以构建一个功能完备的Java FTP客户端,实现文件的上传、下载以及目录管理等功能,满足日常的文件传输需求。在开发过程中,要注重代码的可读性、可维护性和安全性,以适应不同的使用场景。
7. **第三方库**:`edtftpj-1.5.2`可能是一个FTP库,如EDTFTPj,这是一个Java FTP/FTPS库,提供了异步和同步操作,支持各种FTP特性。使用这样的库可以简化FTP客户端的开发,提供更高级的功能和更好的性能。 在开发...
此项目“JAVA Swing (MVC) FTP客户端”是基于Swing和FTP协议创建的一个桌面应用程序,它允许用户进行基本的FTP(File Transfer Protocol)操作,如上传、下载文件,并能展示上传和下载的速度。下面将详细解析这个...
ftp客户端 java编写 基于apache组件
1.实现一个图形用户界面的FTP客户端。 2.功能: 2.1 配置使用IIS的FTP服务器; 2.2 客户端发出各种操作命令;至少实现conn(连接)、list(列示文件)、retr(下载)、store(上载)的功能。 2.3 接收服务器的...
总之,这段Java代码展示了如何使用内置的`FtpClient`实现一个简单的FTP客户端,执行基本的文件上传和下载任务。然而,为了在生产环境中构建可靠的FTP客户端,可能需要考虑更多的异常处理、错误报告、连接重试机制...
1.实现一个图形用户界面的FTP客户端。 2.功能: 2.1 配置使用IIS的FTP服务器; 2.2 客户端发出各种操作命令;至少实现conn(连接)、list(列示文件)、retr(下载)、store(上载)的功能。 2.3 接收服务器的...
本项目名为“ftp客户端源码 java实现”,提供了一个简单易用的FTP客户端示例,适用于学习和开发用途。 FTP客户端的基本功能包括连接到FTP服务器、登录、上传文件、下载文件、列出目录内容、创建或删除远程目录等。...