从ftp拷贝文件

public static File[] copyDir(String ftpIp, int ftpPort, String ftpUser, String ftpPass,
    String ftpPath, String tmpPath) throws Exception {
  
  FTPClient ftp = new FTPClient();
  try {
    ftp.connect(ftpIp, ftpPort);

    ftp.login(ftpUser, ftpPass);
    if (!FTPReply.isPositiveCompletion(ftp.getReplyCode())) {
      throw new Exception("用户名或密码不正确。");
    }

    FTPFile[] files = ftp.listFiles(ftpPath);
    if (files.length == 0 && ftp.getReplyString().indexOf("fail") > 0) {
      throw new Exception("目录不存在。");
    }

    File tmpDir = new File(tmpPath);
    if (!tmpDir.exists()){
      tmpDir.mkdirs();
    }
    for (FTPFile f : files) {
      System.out.println(f.getName());
      ftp.retrieveFile(ftpPath + "/" + f.getName(),
          new FileOutputStream(tmpDir.getAbsolutePath() + File.separator + f.getName()));
    }

    ftp.logout();

    return tmpDir.listFiles();
    
  } finally {
    if (ftp.isConnected()) {
      try {
        ftp.disconnect();
      } catch (Exception e) {
      }
    }
  }

}
时间: 2024-08-25 09:11:33

从ftp拷贝文件的相关文章

使用pscp实现Windows 和 Linux服务器间远程拷贝文件

在工作中,每次部署应用时都需要从本机Windows服务器拷贝文件到Linux上,有时还将Linux 上的文件拷到本机,这些操作以前都是使用Ftp 工具FlashFxp 来操作的,最近就想有什么更快捷的方法没,比如直接命令操作.结合网上查询的资料,发现 pscp 能够实现Windows 和Linux 间相互传输文件.下文将详细描述如何使用: 一.pscp 简要描述: PSCP (PuTTY Secure Copy client)是PuTTY 提供的文件传输工具 ,通过 SSH 连接,在两台机器之间

linux中使用scp远程拷贝文件及文件夹

linux scp远程拷贝文件及文件夹,需要的朋友可以参考下 1.拷贝本机/home/wtf/test整个目录至远程主机192.168.100.1的/root目录下 代码如下: scp -r /home/wtf/test/ [email protected]:/root/ 2.拷贝单个文件至远程主机 代码如下: scp /home/wtf/test/wtf.txt [email protected]:/root/ 说明: 上传文件和文件夹区别就在参数 -r, 跟cp, rm的参数使用差不多, 文

【ABAP系列】SAP ABAP 实现FTP的文件上传与下载

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 实现FTP的文件上传与下载 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 在SAP的实际应用中,经常会需要将生成的文件上传到FTP,或从FTP下载相关文档数据.本例实现将本地指定文件上传到FTP,及从FTP下载文件到本地的功能. 从FTP复制文件共有两种方式,一种是直接复制文件,另

windows程序中拷贝文件的选择

最近需要在Windows下拷贝大量小文件(数量在十万级别以上).写了些拷贝文件的小程序,竟然发现不同的选择,拷贝的速度有天壤之别! 现有这样的测试数据:1500+小文件,总大小10M左右.现用不同方法进行拷贝.: 方案1:调用SHFileOperation [cpp] view plain copy BOOL CUtility::CopyFolder(LPCTSTR lpszFromPath,LPCTSTR lpszToPath) { size_t nLengthFrm = _tcslen(lp

FTP下载文件工具类

FTP文件下载需要的jar包commons-net-2.0.jar有时还需要:jakarta-oro.jar 1 package com.wdxc.util; 2 3 import java.io.File; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 import java.io.OutputStream; 7 import java.util.HashMap; 8 import java.util.Ma

指定字节拷贝文件

#import "SizeCopy.h" @implementation SizeCopy -(void)accordingByteCopy:(NSInteger)size {     //获取桌面上的文件路径,以便拷贝     NSString *[email protected]"/Users/scjy/Desktop/video.mp4";     //指定将要拷贝到哪里     NSString *[email protected]"/Users/

利用python多线程实现拷贝文件夹的文件

import multiprocessing import threading import os import time import random import sys def copy_file(queue,file_name,source_folder_name,dest_folder_name): #print('正在复制:%s' % file_name) if os.path.isdir(source_folder_name + '/' + file_name): queue.put

FTP服务器文件上传的代码实现

方式一: @Test public void testFtpClient() throws Exception { // 1.创建一个FtpClient对象 FTPClient ftpClient = new FTPClient(); // 2.创建ftp连接,默认是21端口 ftpClient.connect("192.168.1.121", 21); // 3.登录ftp服务器,使用用户名和密码 ftpClient.login("ftpuser", "

exsi主机之间使用scp拷贝文件超时问题

exsi主机之间使用scp拷贝文件直接连接不上报错超时: 解决: 防火墙勾选ssh选项