当前位置:首页 » 文件传输 » ftp获取文件
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

ftp获取文件

发布时间: 2022-01-14 19:44:42

1. 如何获取ftp服务器下指定文件的大小

//////获取ftp服务器上指定文件夹的文件列表(包含文件大小)//////////////////publicDictionaryGetFTPList(stringServerIP,stringUSERID,stringPassWord,stringpath){Dictionarydic=newDictionary();if(path==null)path="";FtpWebRequestreqFtp;try{reqFtp=(FtpWebRequest)FtpWebRequest.Create(newUri("ftp://"+ServerIP+"/"+path));reqFtp.KeepAlive=false;reqFtp.UseBinary=true;//指定ftp数据传输类型为二进制reqFtp.Credentials=newNetworkCredential(USERID,PassWord);//设置于ftp通讯的凭据reqFtp.Method=WebRequestMethods.Ftp.ListDirectoryDetails;//指定操作方式WebResponseresponse=reqFtp.GetResponse();//获取一个FTP响应StreamReaderreader=newStreamReader(response.GetResponseStream(),Encoding.GetEncoding("GB2312"));//读取响应流stringline=reader.ReadLine();while(line!=null){if(line!="."&&line!=".."){intend=line.LastIndexOf('');intstart=line.IndexOf("");stringfilename=line.Substring(end+1);if(filename.Contains(".")){line=line.Replace(filename,"");dic.Add(filename.Trim(),int.Parse(line.Substring(start).Trim()));}}line=reader.ReadLine();}}catch(Exceptionex){Console.WriteLine(ex.Message);}returndic;}文件夹或者某一文件都适用

2. 怎么打开一个FTP上的文件

用FTP命令打开一个文本文件的具体方法如下:
DOS下或工具下都不能直接在服务器上打开文件,一定要下载下来才能打开的!GET命令用来获取文件。如果你想在默认目录使用原始文件名下载文件,你要输入GET <filename> <回车> .
可以只输入GET,系统会提示要下载的文件名,然后提示存储到的新文件名(及目录)。 ftp> get readme.txt 200 PORT command successful. 150 Opening BINARY mode data connection for readme.txt(1571 bytes). 226 Transfer complete. 1571 bytes received in 3.46 seconds (0.45 Kbytes/sec)
上传 。可以使用SEND命令上传文件。当然服务器要允许上传文件才行。

3. 怎么获取ftp服务器上指定文件的大小

可以用原始指令
size [path]filename
如果文件存在 返回文件长度
否则返回5xx 失败

4. java怎么获取ftp文件的路径

public static void main(String[] args) {
// TODO Auto-generated method stub
// 创建File对象
File file = new File("d:\\");
// 使用递归方法做
dg(file);
}

private static void dg(File fl) {
// TODO Auto-generated method stub
// 创建file数组用来存储数据
File[] filArr = fl.listFiles();
// 判断FiLe数组不能为空
if (filArr != null) {
// 使用for遍历
for (File f : filArr) {
// 如果是文件夹 就递归
if (f.isDirectory()) {
// 递归
dg(f);
} else if (f.isFile()) {

System.out.println(f.getAbsolutePath());
}
}
}
}

5. VB 如何获取FTP上的文件

要用到inet控件。public strData as string
'这段可以返回服务器中的第一级目录名,保存在strData中, 如有多个文件夹名每个文件夹名会以空格分开。读取时判段一下。
Inet1.Execute Inet1.URL, "dir """ & dirName & """"
Do
DoEvents
Loop While Inet1.StillExecuting = True
msgbox strData
'这段是进入目录中,要想获得服务器中所有的文件夹名,就可以用递规的办法来获得。
Inet1.Execute Inet1.URL, "cd """ & dirName & """"
Do
DoEvents
Loop While Inet1.StillExecuting = True
Private Sub Inet1_StateChanged(ByVal State As Integer)
Select Case State
Case 1

StatusBar1.Panels.Item(1).Text = "该控件正在查询所指定的主机的 IP 地址"

Case 2

StatusBar1.Panels.Item(1).Text = "该控件已成功地找到所指定的主机的 IP 地址"

Case 3

StatusBar1.Panels.Item(1).Text = "该控件正在与主机连接"

Case 4

StatusBar1.Panels.Item(1).Text = "该控件已与主机连接成功"

Case 5

StatusBar1.Panels.Item(1).Text = "该控件正在向主机发送请求"

Case 6

StatusBar1.Panels.Item(1).Text = "该控件发送请求已成功"

Case 7

StatusBar1.Panels.Item(1).Text = "该控件正在接收主机的响应"

Case 8

StatusBar1.Panels.Item(1).Text = "该控件已成功地接收到主机的响应"

Case 9

StatusBar1.Panels.Item(1).Text = "该控件正在解除与主机的连接"

Case 10

StatusBar1.Panels.Item(1).Text = "该控件已成功地与主机解除了连接"

Case 11
MsgBox "与主机通讯时出现了错误", vbInformation, "个人资料"
Case 12
Dim vtData As Variant
Dim bDone As Boolean
bDone = False
'取得第一个块。
vtData = Inet1.GetChunk(1024, icString)
DoEvents
Do While Not bDone
strData = strData & vtData
'取得下一个块。
vtData = Inet1.GetChunk(1024, icString)
DoEvents
If Len(vtData) = 0 Then
bDone = True
End If
Loop
StatusBar1.Panels.Item(1).Text = "该请求已经完成,并且所有数据均已接收到"
Case Else
StatusBar1.Panels.Item(1).Text = Inet1.ResponseCode & ": " & Inet1.ResponseInfo
End Select
End Sub
关于inet控件的祥细用法可以看msdn中的帮助。

6. 如何访问ftp站点并获取资料

间接下载资源工具:FlashFXP v3.40 多国语言版 http://www.crsky.com/soft/1183.html
迅雷5 的 ftp探测器 http://down.sandai.net:8080/Thunder5.1.3.168.exe
flashget (网际快车) http://www.onlinedown.net/soft/15.htm
cuteftp http://down.crsky.com/DL/cuteftp71-chs.rar
以上均是很好的ftp下载工具

直接访问下载方法:在地址栏中,键入要连接的 FTP 站点的 Internet 地址 (URL)。例如:ftp://ftp.microsoft..com/
要下载文件或文件夹,请用右键单击 Web 页中的项目,然后单击“下载到”。
要以其他用户身份登录到此 FTP 站点,请单击“文件”菜单,然后单击“登录”。

要重命名或删除 FTP 文件夹中的项目或将项目粘贴到 FTP 站点(上载),可以使用与“Windows 资源管理器”或“我的电脑”相同的命令和操作。

注意

在部分 FTP 站点上,只能查看或下载文件。只有运行或拥有站点的人才能重命名、删除或上载文件。
在许多 FTP 站点上,您都可以自动匿名登录,从而查看或下载文件。要上载、重命名或删除文件,可能需要使用特殊的用户名和密码登录。同时,相同站点的不同区域也可能需要进行不同的登录。
文件不能在 FTP 站点内部和站点之间移动。您可以从 FTP 站点将文件移动到您的计算机或网络驱动器上的临时位置,然后再将它们上载到另一个 FTP 站点或相同站点的其他文件夹中。
部分程序允许在“文件打开”或“文件保存”对话框中键入 FTP 地址,从而打开和保存 FTP 服务器上的

7. FTP获取文件名以及文件路径

既然是服务器,而且是linux 你用一个tomcat 当做服务器,可以配置一下tomcat,就可以直接ftp 模式访问文件夹了。

8. 怎么利用IdFTP控件获取FTP服务器端某个子文件目录中的文件列表

----解决方案--------------------
FTPClient.List(list);
for i:=0 to list.Count-1 do
begin
Attribute:=FTPClient.DirectoryListing.Items[i].ItemType;
if Attribute=ditDirectory then
begin
showmessage('目录:'+FTPClient.DirectoryListing.Items[i].FileName);
end
else if Attribute=ditFile then
begin
showmessage('文件:'+FTPClient.DirectoryListing.Items[i].FileName);
end
else
begin
showmessage('其它:'+FTPClient.DirectoryListing.Items[i].FileName);
end;
end;

9. 怎么获取ftp的路径

问一下,你是想做ftp上传下载么?

首先你需要安装一个ftp服务端程序,启动起来,然后下载一个ftp客户端程序,测试能不能连接,首先这一块儿需要测试通过。
代码ftp上传下载
2.1 上传代码:
import java.io.File;
import java.io.FileInputStream;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

public class test {

private FTPClient ftp;
/**
*
* @param path 上传到ftp服务器哪个路径下
* @param addr 地址
* @param port 端口号
* @param username 用户名
* @param password 密码
* @return
* @throws Exception
*/
private boolean connect(String path,String addr,int port,String username,String password) throws Exception {
boolean result = false;
ftp = new FTPClient();
int reply;
ftp.connect(addr,port);
ftp.login(username,password);
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return result;
}
ftp.changeWorkingDirectory(path);
result = true;
return result;
}
/**
*
* @param file 上传的文件或文件夹
* @throws Exception
*/
private void upload(File file) throws Exception{
if(file.isDirectory()){
ftp.makeDirectory(file.getName());
ftp.changeWorkingDirectory(file.getName());
String[] files = file.list();
for (int i = 0; i < files.length; i++) {
File file1 = new File(file.getPath()+"\\"+files[i] );
if(file1.isDirectory()){
upload(file1);
ftp.changeToParentDirectory();
}else{
File file2 = new File(file.getPath()+"\\"+files[i]);
FileInputStream input = new FileInputStream(file2);
ftp.storeFile(file2.getName(), input);
input.close();
}
}
}else{
File file2 = new File(file.getPath());
FileInputStream input = new FileInputStream(file2);
ftp.storeFile(file2.getName(), input);
input.close();
}
}
public static void main(String[] args) throws Exception{
test t = new test();
t.connect("", "localhost", 21, "yhh", "yhhazr");
File file = new File("e:\\uploadify");
t.upload(file);
}
}
2.2 下载代码
这里没有用到filter,如果用filter就可以过滤想要的文件。

public class Ftp {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Ftp ftp = new Ftp();
String hostname = "www.strawberry.com";
Integer port = 21;
String username = "username";
String password = "password";
String remote = "/c.txt";
String local = "/home/tin/LeonChen/FTP/";
try {
ftp.connect(hostname, port, username, password);
System.out.println("接收状态:"+ftp.download(remote, local));
ftp.disconnect();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

private FTPClient ftpClient = new FTPClient();

/*
* * 连接到FTP服务器
* * @param hostname 主机名
* * @param port 端口
* * @param username 用户名
* * @param password 密码
* * @return 是否连接成功
* * @throws IOException
*/
private boolean connect(String hostname, int port, String username,
String password) throws IOException {
ftpClient.connect(hostname, port);
ftpClient.setControlEncoding("UTF-8");
if (FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
if (ftpClient.login(username, password)) {
return true;
}
}
disconnect();
return false;
}

/*
* 从FTP服务器上下载文件,支持断点续传,上传百分比汇报
*
* @param remote 远程文件路径
*
* @param local 本地文件路径
*
* @return 上传的状态
*
* @throws IOException
*/
public DownloadStatus download(String remote, String local)
throws IOException {
// 设置被动模式
ftpClient.enterLocalPassiveMode();
// 设置以二进制方式传输
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
DownloadStatus result;
// 检查远程文件是否存在
FTPFile[] files = ftpClient.listFiles(new String(remote
.getBytes("UTF-8"), "iso-8859-1"));
if (files.length != 1) {
System.out.println("远程文件不存在");
return DownloadStatus.Remote_File_Noexist;
}
long lRemoteSize = files[0].getSize();
String fildName = files[0].getName();
// 本地存在文件,进行断点下载
File f = new File(local+fildName);
if (f.exists()) {
long localSize = f.length();
if (localSize >= lRemoteSize) {
System.out.println("本地文件大于远程文件,下载中止");
return DownloadStatus.Local_Bigger_Remote;
}

// 进行断点续传,并记录状态
FileOutputStream out = new FileOutputStream(f, true);
ftpClient.setRestartOffset(localSize);
InputStream in = ftpClient.retrieveFileStream(new String(remote.getBytes("UTF-8"), "iso-8859-1"));
byte[] bytes = new byte[1024];
long step = lRemoteSize / 100;
long process = localSize / step;
int c;
while ((c = in.read(bytes)) != -1) {
out.write(bytes, 0, c);
localSize += c;
long nowProcess = localSize / step;
if (nowProcess > process) {
process = nowProcess;
if (process % 10 == 0)
System.out.println("下载进度:" + process);
// TODO 更新文件下载进度,值存放在process变量中
}
}
in.close();
out.close();
boolean isDo = ftpClient.completePendingCommand();
if (isDo) {
result = DownloadStatus.Download_From_Break_Success;
} else {
result = DownloadStatus.Download_From_Break_Failed;
}
} else {
OutputStream out = new FileOutputStream(f);
InputStream in = ftpClient.retrieveFileStream(new String(remote.getBytes("UTF-8"), "iso-8859-1"));
byte[] bytes = new byte[1024];
long step = lRemoteSize / 100;
long process = 0;
long localSize = 0L;
int c;
while ((c = in.read(bytes)) != -1) {
out.write(bytes, 0, c);
localSize += c;
long nowProcess = localSize / step;
if (nowProcess > process) {
process = nowProcess;
if (process % 10 == 0)
System.out.println("下载进度:" + process);
// TODO 更新文件下载进度,值存放在process变量中
}
}
in.close();
out.close();
boolean upNewStatus = ftpClient.completePendingCommand();
if (upNewStatus) {
result = DownloadStatus.Download_New_Success;
} else {
result = DownloadStatus.Download_New_Failed;
}
}
return result;
}

private void disconnect() throws IOException {
if (ftpClient.isConnected()) {
ftpClient.disconnect();
}
}

}

10. 用JAVA获取FTP文件列表

学习一下ftp协议,然后用socket来模拟就可以了