当前位置:首页 » 文件管理 » ftp目录遍历

ftp目录遍历

发布时间: 2024-04-20 13:58:37

Ⅰ 请问一下,java中有没直接判断ftp文件夹下是否存在某文件的方法通过遍历文件夹的方式判断太耗内存了

第一个种方法 :
org.apache.commons.net.ftp.* 看这个目录下是否有你要的方法
第二种方法:

package com.soft4j.log4j;

import java.io.IOException;

import sun.net.ftp.FtpClient;

public class FtpTest
{
static String middle_ftpServer = "10.103.2.250";
static String middle_user = "ora9iftp";
static String middle_password = "ftp";
static String middle_dir = "/image/NWKPHOTO/Middle/2009/3";

public static void main(String[] args)
{
FtpClient ftpClient = new FtpClient();
try
{
ftpClient.openServer(middle_ftpServer);
ftpClient.login(middle_user, middle_password);
FtpTest ft = new FtpTest();
ft.isDirExist(ftpClient, middle_dir);
} catch (IOException e)
{
e.printStackTrace();
}

}

/** 判断Ftp目录是否存在,如果不存在则创建目录 */
public void isDirExist(FtpClient ftpClient, String dir)
{
try
{
ftpClient.cd(dir); //想不到什么好办法来判断目录是否存在,只能用异常了(比较笨).请知道的告诉我一声`
} catch (IOException e1)
{
ftpClient.sendServer("MKD " + dir + "\r\n");
try
{
ftpClient.readServerResponse();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
}

Ⅱ ftp遍历目录的问题

你这个ftp是用的都是同一个对象,每次递归workfolder都被update掉了。。。。当然会不继续遍历,改成每次都Generate一个New的ftp吧。
补充:
本来你ftp指向目录A,后来进入递归被改成指向A/B了,你说遍历还能准确吗?
还有个方法就是每次递归回来调用:
ftp.changeWorkingDirectory(ftpPath);
把Path给设置回来。不过不确定这个方法稳定,可以先Try一下。
public void listFilesDir(String path) throws IOException{
String ftpPath = path;
ftp.changeWorkingDirectory(ftpPath);
FTPFile[] files = ftp.listFiles();
for(FTPFile ff:files){
if(!ff.isDirectory()){
System.out.println("文件:" + ff.getName());
}
else{
if(!ff.getName().startsWith(".")){
ftpPath = ff.getName() + "/";
System.out.println("目录 " + ff.getName() + " 下的文件文件或目录:");
ftp.changeWorkingDirectory(ftpPath);
listFilesDir(ftpPath);
ftp.changeWorkingDirectory(path);
}
}
}
}
再补充:
中文的话试试看用GBK。。。Java项目的编码记得也要一样的。

Ⅲ C#如何实现FTP在服务器上遍历文件夹

.../Image这个主文件夹是一定的,然后搂住是想在这个文件夹下创建文件夹
事先,你已经知道你所要创建的文件夹的名称,可以这么做
if (!(Directory.Exists(path+文件名))//用这个方法判断是否有这个文件夹。比你去遍历文件夹要效率的多
Directory.CreateDirectory(path+文件名);//不存在则创建

Ⅳ java遍历ftp文件夹时,在FTPFile ff[] = ftpClient.listFiles()处一直提示空指针异常错误,是怎么回事。

boolean success = false; 
FTPClient ftp = new FTPClient();
try {
int reply;
ftp.connect(url, port);
//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftp.login(username, password);//登录
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return success;
}
ftp.changeWorkingDirectory(remotePath);//转移到FTP服务器目录
FTPFile[] fs = ftp.listFiles();

Ⅳ C++ 怎么获取FTP上所有的文件夹还有所有文件

通过CFtpFileFind递归进行查询,如果没有文件,会返回false,就不用进行再查找了。如果有文件或文件夹,通过getnext进行遍历查看就行

linux下用c语言编程遍历远程ftp(linux系统)指定目录下的文件

FindFile FindNextFile

热点内容
linux如何改配置文件 发布:2024-05-03 13:00:54 浏览:31
哪个安卓模拟器老爷机带得动 发布:2024-05-03 13:00:49 浏览:576
编程与实战 发布:2024-05-03 12:54:30 浏览:38
电脑开机有密码rpc服务器不可用 发布:2024-05-03 12:40:54 浏览:471
硬件的算法 发布:2024-05-03 12:34:28 浏览:388
支付密码为什么就六位 发布:2024-05-03 12:29:17 浏览:920
脚本找书 发布:2024-05-03 12:02:17 浏览:493
境外服务器租用怎么办 发布:2024-05-03 11:45:34 浏览:943
我的世界服务器怎么设置到重生点 发布:2024-05-03 11:33:04 浏览:752
mysqllinux安装包下载 发布:2024-05-03 11:32:07 浏览:934