久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

FTP上傳工具類

 事預(yù)則成 2011-09-05

package com.icelove.util;



import java.io.DataInputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

import java.util.ArrayList;

import java.util.List;

import java.util.StringTokenizer;



import sun.net.TelnetInputStream;

import sun.net.TelnetOutputStream;

import sun.net.ftp.FtpClient;

/**

 * FTP上傳工具類

 * @author icelove

 *

 */

public class FtpUtil {

 private String ip = "";

 private String username = "";

 private String password = "";

 private int port = -1;

 private String path = "";

 private FtpClient ftpClient = null;

 private OutputStream os = null;

 private FileInputStream is = null;

 public FtpUtil(String serverIP, String username, String password) {

  this.ip = serverIP;

  this.username = username;

  this.password = password;

 }



 public FtpUtil(String serverIP, int port, String username, String password) {

  this.ip = serverIP;

  this.username = username;

  this.password = password;

  this.port = port;

 }



 /**    

  * 連接ftp服務(wù)器    

  * @throws IOException    

  */

 public boolean connectServer() {

  ftpClient = new FtpClient();

  try {

   if (this.port != -1) {

    ftpClient.openServer(this.ip, this.port);

   } else {

    ftpClient.openServer(this.ip);

   }

   ftpClient.login(this.username, this.password);

   if (this.path.length() != 0) {

    ftpClient.cd(this.path);// path是ftp服務(wù)下主目錄的子目錄                 

   }

   ftpClient.binary();// 用2進(jìn)制上傳,、下載      

   System.out.println("已登錄到\"" + ftpClient.pwd() + "\"目錄");

   return true;

  } catch (IOException e) {

   e.printStackTrace();

   return false;

  }

 }



 /**    

  * 斷開與ftp服務(wù)器連接    

  * @throws IOException    

  */

 public boolean closeServer() {

  try {

   if (is != null) {

    is.close();

   }

   if (os != null) {

    os.close();

   }

   if (ftpClient != null) {

    ftpClient.closeServer();

   }

   System.out.println("已從服務(wù)器斷開");

   return true;

  } catch (IOException e) {

   e.printStackTrace();

   return false;

  }

 }



 /**    

  * 檢查文件夾在當(dāng)前目錄下是否存在    

  * @param dir    

  * @return    

  */

 private boolean isDirExist(String dir) {

  String pwd = "";

  try {

   pwd = ftpClient.pwd();

   ftpClient.cd(dir);

   ftpClient.cd(pwd);

  } catch (Exception e) {

   return false;

  }

  return true;

 }



 /**    

  * 在當(dāng)前目錄下創(chuàng)建文件夾    

  * @param dir    

  * @return    

  * @throws Exception    

  */

 private boolean createDir(String dir) {

  try {

   ftpClient.ascii();

   StringTokenizer s = new StringTokenizer(dir, "/"); //sign      

   s.countTokens();

   String pathName = ftpClient.pwd();

   while (s.hasMoreElements()) {

    pathName = pathName + "/" + (String) s.nextElement();

    try {

     ftpClient.sendServer("MKD " + pathName + "\r\n");

    } catch (Exception e) {

     e = null;

     return false;

    }

    ftpClient.readServerResponse();

   }

   ftpClient.binary();

   return true;

  } catch (IOException e1) {

   e1.printStackTrace();

   return false;

  }

 }



 /**    

  * ftp上傳    

  * 如果服務(wù)器段已存在名為filename的文件夾,,該文件夾中與要上傳的文件夾中同名的文件將被替換    

  *     

  * @param filename 要上傳的文件(或文件夾)名    

  * @return    

  * @throws Exception    

  */

 public boolean upload(String filename) {

  String newname = "";

  if (filename.indexOf("/") > -1) {

   newname = filename.substring(filename.lastIndexOf("/") + 1);

  } else {

   newname = filename;

  }

  return upload(filename, newname);

 }



 /**    

  * ftp上傳    

  * 如果服務(wù)器段已存在名為newName的文件夾,該文件夾中與要上傳的文件夾中同名的文件將被替換    

  *     

  * @param fileName 要上傳的文件(或文件夾)名    

  * @param newName 服務(wù)器段要生成的文件(或文件夾)名    

  * @return    

  */

 public boolean upload(String fileName, String newName) {

  try {

   String savefilename = new String(fileName.getBytes("ISO-8859-1"), "GBK");

   File file_in = new File(savefilename);//打開本地待長傳的文件      

   if (!file_in.exists()) {

    throw new Exception("此文件或文件夾[" + file_in.getName() + "]有誤或不存在!");

   }

   if (file_in.isDirectory()) {

    upload(file_in.getPath(), newName, ftpClient.pwd());

   } else {

    uploadFile(file_in.getPath(), newName);

   }



   if (is != null) {

    is.close();

   }

   if (os != null) {

    os.close();

   }

   return true;

  } catch (Exception e) {

   e.printStackTrace();

   System.err.println("Exception e in Ftp upload(): " + e.toString());

   return false;

  } finally {

   try {

    if (is != null) {

     is.close();

    }

    if (os != null) {

     os.close();

    }

   } catch (IOException e) {

    e.printStackTrace();

   }

  }

 }



 /**    

  * 真正用于上傳的方法    

  * @param fileName    

  * @param newName    

  * @param path    

  * @throws Exception    

  */

 private void upload(String fileName, String newName, String path) throws Exception {

  String savefilename = new String(fileName.getBytes("ISO-8859-1"), "GBK");

  File file_in = new File(savefilename);//打開本地待長傳的文件      

  if (!file_in.exists()) {

   throw new Exception("此文件或文件夾[" + file_in.getName() + "]有誤或不存在!");

  }

  if (file_in.isDirectory()) {

   if (!isDirExist(newName)) {

    createDir(newName);

   }

   ftpClient.cd(newName);

   File sourceFile[] = file_in.listFiles();

   for (int i = 0; i < sourceFile.length; i++) {

    if (!sourceFile[i].exists()) {

     continue;

    }

    if (sourceFile[i].isDirectory()) {

     this.upload(sourceFile[i].getPath(), sourceFile[i].getName(), path + "/" + newName);

    } else {

     this.uploadFile(sourceFile[i].getPath(), sourceFile[i].getName());

    }

   }

  } else {

   uploadFile(file_in.getPath(), newName);

  }

  ftpClient.cd(path);

 }



 /**    

  *  upload 上傳文件    

  *     

  * @param filename 要上傳的文件名    

  * @param newname 上傳后的新文件名    

  * @return -1 文件不存在 >=0 成功上傳,,返回文件的大小    

  * @throws Exception    

  */

 public long uploadFile(String filename, String newname) throws Exception {

  long result = 0;

  TelnetOutputStream os = null;

  FileInputStream is = null;

  try {

   java.io.File file_in = new java.io.File(filename);

   if (!file_in.exists())

    return -1;

   os = ftpClient.put(newname);

   result = file_in.length();

   is = new FileInputStream(file_in);

   byte[] bytes = new byte[1024];

   int c;

   while ((c = is.read(bytes)) != -1) {

    os.write(bytes, 0, c);

   }

  } finally {

   if (is != null) {

    is.close();

   }

   if (os != null) {

    os.close();

   }

  }

  return result;

 }



 /**    

  * 從ftp下載文件到本地    

  *     

  * @param filename 服務(wù)器上的文件名    

  * @param newfilename 本地生成的文件名    

  * @return    

  * @throws Exception    

  */

 public long downloadFile(String filename, String newfilename) {

  long result = 0;

  TelnetInputStream is = null;

  FileOutputStream os = null;

  try {

   is = ftpClient.get(filename);

   java.io.File outfile = new java.io.File(newfilename);

   os = new FileOutputStream(outfile);

   byte[] bytes = new byte[1024];

   int c;

   while ((c = is.read(bytes)) != -1) {

    os.write(bytes, 0, c);

    result = result + c;

   }

  } catch (IOException e) {

   e.printStackTrace();

  } finally {

   try {

    if (is != null) {

     is.close();

    }

    if (os != null) {

     os.close();

    }

   } catch (IOException e) {

    e.printStackTrace();

   }

  }

  return result;

 }



 /**    

  * 取得相對于當(dāng)前連接目錄的某個目錄下所有文件列表    

  *     

  * @param path    

  * @return    

  */

 public List getFileList(String path) {

  List list = new ArrayList();

  DataInputStream dis;

  try {

   dis = new DataInputStream(ftpClient.nameList(this.path + path));

   String filename = "";

   while ((filename = dis.readLine()) != null) {

    list.add(filename);

   }

  } catch (IOException e) {

   e.printStackTrace();

  }

  return list;

 }



 public static void main(String[] args) {

  FtpUtil ftp = new FtpUtil("133.224.202.2", "tstbill", "tstbill");

  ftp.connectServer();

  boolean result = ftp.upload("C:/test_why", "test_why/test");

  System.out.println(result ? "上傳成功,!" : "上傳失敗,!");

  List list = ftp.getFileList("test_why/test");

  for (int i = 0; i < list.size(); i++) {

   String name = list.get(i).toString();

   System.out.println(name);

  }

  ftp.closeServer();

  /**    

  FTP遠(yuǎn)程命令列表    

  USER    PORT    RETR    ALLO    DELE    SITE    XMKD    CDUP    FEAT    

  PASS    PASV    STOR    REST    CWD     STAT    RMD     XCUP    OPTS    

  ACCT    TYPE    APPE    RNFR    XCWD    HELP    XRMD    STOU    AUTH    

  REIN    STRU    SMNT    RNTO    LIST    NOOP    PWD     SIZE    PBSZ    

  QUIT    MODE    SYST    ABOR    NLST    MKD     XPWD    MDTM    PROT    

  在服務(wù)器上執(zhí)行命令,如果用sendServer來執(zhí)行遠(yuǎn)程命令(不能執(zhí)行本地FTP命令)的話,,所有FTP命令都要加上\r\n    

  ftpclient.sendServer("XMKD /test/bb\r\n"); //執(zhí)行服務(wù)器上的FTP命令    

  ftpclient.readServerResponse一定要在sendServer后調(diào)用    

  nameList("/test")獲取指目錄下的文件列表    

  XMKD建立目錄,當(dāng)目錄存在的情況下再次創(chuàng)建目錄時報錯    

  XRMD刪除目錄    

  DELE刪除文件    

   */

 }

}package com.icelove.util; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; import sun.net.TelnetInputStream; import sun.net.TelnetOutputStream; import sun.net.ftp.FtpClient; /**  * FTP上傳工具類  * @author icelove  *  */ public class FtpUtil {  private String ip = "";  private String username = "";  private String password = "";  private int port = -1;  private String path = "";  private FtpClient ftpClient = null;  private OutputStream os = null;  private FileInputStream is = null;  public FtpUtil(String serverIP, String username, String password) {   this.ip = serverIP;   this.username = username;   this.password = password;  }  public FtpUtil(String serverIP, int port, String username, String password) {   this.ip = serverIP;   this.username = username;   this.password = password;   this.port = port;  }  /**       * 連接ftp服務(wù)器       * @throws IOException       */  public boolean connectServer() {   ftpClient = new FtpClient();   try {    if (this.port != -1) {     ftpClient.openServer(this.ip, this.port);    } else {     ftpClient.openServer(this.ip);    }    ftpClient.login(this.username, this.password);    if (this.path.length() != 0) {     ftpClient.cd(this.path);// path是ftp服務(wù)下主目錄的子目錄                     }    ftpClient.binary();// 用2進(jìn)制上傳,、下載          System.out.println("已登錄到\"" + ftpClient.pwd() + "\"目錄");    return true;   } catch (IOException e) {    e.printStackTrace();    return false;   }  }  /**       * 斷開與ftp服務(wù)器連接       * @throws IOException       */  public boolean closeServer() {   try {    if (is != null) {     is.close();    }    if (os != null) {     os.close();    }    if (ftpClient != null) {     ftpClient.closeServer();    }    System.out.println("已從服務(wù)器斷開");    return true;   } catch (IOException e) {    e.printStackTrace();    return false;   }  }  /**       * 檢查文件夾在當(dāng)前目錄下是否存在       * @param dir       * @return       */  private boolean isDirExist(String dir) {   String pwd = "";   try {    pwd = ftpClient.pwd();    ftpClient.cd(dir);    ftpClient.cd(pwd);   } catch (Exception e) {    return false;   }   return true;  }  /**       * 在當(dāng)前目錄下創(chuàng)建文件夾       * @param dir       * @return       * @throws Exception       */  private boolean createDir(String dir) {   try {    ftpClient.ascii();    StringTokenizer s = new StringTokenizer(dir, "/"); //sign          s.countTokens();    String pathName = ftpClient.pwd();    while (s.hasMoreElements()) {     pathName = pathName + "/" + (String) s.nextElement();     try {      ftpClient.sendServer("MKD " + pathName + "\r\n");     } catch (Exception e) {      e = null;      return false;     }     ftpClient.readServerResponse();    }    ftpClient.binary();    return true;   } catch (IOException e1) {    e1.printStackTrace();    return false;   }  }  /**       * ftp上傳       * 如果服務(wù)器段已存在名為filename的文件夾,,該文件夾中與要上傳的文件夾中同名的文件將被替換       *        * @param filename 要上傳的文件(或文件夾)名       * @return       * @throws Exception       */  public boolean upload(String filename) {   String newname = "";   if (filename.indexOf("/") > -1) {    newname = filename.substring(filename.lastIndexOf("/") + 1);   } else {    newname = filename;   }   return upload(filename, newname);  }  /**       * ftp上傳       * 如果服務(wù)器段已存在名為newName的文件夾,該文件夾中與要上傳的文件夾中同名的文件將被替換       *        * @param fileName 要上傳的文件(或文件夾)名       * @param newName 服務(wù)器段要生成的文件(或文件夾)名       * @return       */  public boolean upload(String fileName, String newName) {   try {    String savefilename = new String(fileName.getBytes("ISO-8859-1"), "GBK");    File file_in = new File(savefilename);//打開本地待長傳的文件          if (!file_in.exists()) {     throw new Exception("此文件或文件夾[" + file_in.getName() + "]有誤或不存在!");    }    if (file_in.isDirectory()) {     upload(file_in.getPath(), newName, ftpClient.pwd());    } else {     uploadFile(file_in.getPath(), newName);    }    if (is != null) {     is.close();    }    if (os != null) {     os.close();    }    return true;   } catch (Exception e) {    e.printStackTrace();    System.err.println("Exception e in Ftp upload(): " + e.toString());    return false;   } finally {    try {     if (is != null) {      is.close();     }     if (os != null) {      os.close();     }    } catch (IOException e) {     e.printStackTrace();    }   }  }  /**       * 真正用于上傳的方法       * @param fileName       * @param newName       * @param path       * @throws Exception       */  private void upload(String fileName, String newName, String path) throws Exception {   String savefilename = new String(fileName.getBytes("ISO-8859-1"), "GBK");   File file_in = new File(savefilename);//打開本地待長傳的文件         if (!file_in.exists()) {    throw new Exception("此文件或文件夾[" + file_in.getName() + "]有誤或不存在!");   }   if (file_in.isDirectory()) {    if (!isDirExist(newName)) {     createDir(newName);    }    ftpClient.cd(newName);    File sourceFile[] = file_in.listFiles();    for (int i = 0; i < sourceFile.length; i++) {     if (!sourceFile[i].exists()) {      continue;     }     if (sourceFile[i].isDirectory()) {      this.upload(sourceFile[i].getPath(), sourceFile[i].getName(), path + "/" + newName);     } else {      this.uploadFile(sourceFile[i].getPath(), sourceFile[i].getName());     }    }   } else {    uploadFile(file_in.getPath(), newName);   }   ftpClient.cd(path);  }  /**       *  upload 上傳文件       *        * @param filename 要上傳的文件名       * @param newname 上傳后的新文件名       * @return -1 文件不存在 >=0 成功上傳,,返回文件的大小       * @throws Exception       */  public long uploadFile(String filename, String newname) throws Exception {   long result = 0;   TelnetOutputStream os = null;   FileInputStream is = null;   try {    java.io.File file_in = new java.io.File(filename);    if (!file_in.exists())     return -1;    os = ftpClient.put(newname);    result = file_in.length();    is = new FileInputStream(file_in);    byte[] bytes = new byte[1024];    int c;    while ((c = is.read(bytes)) != -1) {     os.write(bytes, 0, c);    }   } finally {    if (is != null) {     is.close();    }    if (os != null) {     os.close();    }   }   return result;  }  /**       * 從ftp下載文件到本地       *        * @param filename 服務(wù)器上的文件名       * @param newfilename 本地生成的文件名       * @return       * @throws Exception       */  public long downloadFile(String filename, String newfilename) {   long result = 0;   TelnetInputStream is = null;   FileOutputStream os = null;   try {    is = ftpClient.get(filename);    java.io.File outfile = new java.io.File(newfilename);    os = new FileOutputStream(outfile);    byte[] bytes = new byte[1024];    int c;    while ((c = is.read(bytes)) != -1) {     os.write(bytes, 0, c);     result = result + c;    }   } catch (IOException e) {    e.printStackTrace();   } finally {    try {     if (is != null) {      is.close();     }     if (os != null) {      os.close();     }    } catch (IOException e) {     e.printStackTrace();    }   }   return result;  }  /**       * 取得相對于當(dāng)前連接目錄的某個目錄下所有文件列表       *        * @param path       * @return       */  public List getFileList(String path) {   List list = new ArrayList();   DataInputStream dis;   try {    dis = new DataInputStream(ftpClient.nameList(this.path + path));    String filename = "";    while ((filename = dis.readLine()) != null) {     list.add(filename);    }   } catch (IOException e) {    e.printStackTrace();   }   return list;  }  public static void main(String[] args) {   FtpUtil ftp = new FtpUtil("133.224.202.2", "tstbill", "tstbill");   ftp.connectServer();   boolean result = ftp.upload("C:/test_why", "test_why/test");   System.out.println(result ? "上傳成功,!" : "上傳失敗,!");   List list = ftp.getFileList("test_why/test");   for (int i = 0; i < list.size(); i++) {    String name = list.get(i).toString();    System.out.println(name);   }   ftp.closeServer();   /**       FTP遠(yuǎn)程命令列表       USER    PORT    RETR    ALLO    DELE    SITE    XMKD    CDUP    FEAT       PASS    PASV    STOR    REST    CWD     STAT    RMD     XCUP    OPTS       ACCT    TYPE    APPE    RNFR    XCWD    HELP    XRMD    STOU    AUTH       REIN    STRU    SMNT    RNTO    LIST    NOOP    PWD     SIZE    PBSZ       QUIT    MODE    SYST    ABOR    NLST    MKD     XPWD    MDTM    PROT       在服務(wù)器上執(zhí)行命令,如果用sendServer來執(zhí)行遠(yuǎn)程命令(不能執(zhí)行本地FTP命令)的話,所有FTP命令都要加上\r\n       ftpclient.sendServer("XMKD /test/bb\r\n"); //執(zhí)行服務(wù)器上的FTP命令       ftpclient.readServerResponse一定要在sendServer后調(diào)用       nameList("/test")獲取指目錄下的文件列表       XMKD建立目錄,,當(dāng)目錄存在的情況下再次創(chuàng)建目錄時報錯       XRMD刪除目錄       DELE刪除文件        */  } }package com.icelove.util; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; import sun.net.TelnetInputStream; import sun.net.TelnetOutputStream; import sun.net.ftp.FtpClient; /**  * FTP上傳工具類  * @author icelove  *  */ public class FtpUtil {  private String ip = "";  private String username = "";  private String password = "";  private int port = -1;  private String path = "";  private FtpClient ftpClient = null;  private OutputStream os = null;  private FileInputStream is = null;  public FtpUtil(String serverIP, String username, String password) {   this.ip = serverIP;   this.username = username;   this.password = password;  }  public FtpUtil(String serverIP, int port, String username, String password) {   this.ip = serverIP;   this.username = username;   this.password = password;   this.port = port;  }  /**       * 連接ftp服務(wù)器       * @throws IOException       */  public boolean connectServer() {   ftpClient = new FtpClient();   try {    if (this.port != -1) {     ftpClient.openServer(this.ip, this.port);    } else {     ftpClient.openServer(this.ip);    }    ftpClient.login(this.username, this.password);    if (this.path.length() != 0) {     ftpClient.cd(this.path);// path是ftp服務(wù)下主目錄的子目錄                     }    ftpClient.binary();// 用2進(jìn)制上傳,、下載          System.out.println("已登錄到\"" + ftpClient.pwd() + "\"目錄");    return true;   } catch (IOException e) {    e.printStackTrace();    return false;   }  }  /**       * 斷開與ftp服務(wù)器連接       * @throws IOException       */  public boolean closeServer() {   try {    if (is != null) {     is.close();    }    if (os != null) {     os.close();    }    if (ftpClient != null) {     ftpClient.closeServer();    }    System.out.println("已從服務(wù)器斷開");    return true;   } catch (IOException e) {    e.printStackTrace();    return false;   }  }  /**       * 檢查文件夾在當(dāng)前目錄下是否存在       * @param dir       * @return       */  private boolean isDirExist(String dir) {   String pwd = "";   try {    pwd = ftpClient.pwd();    ftpClient.cd(dir);    ftpClient.cd(pwd);   } catch (Exception e) {    return false;   }   return true;  }  /**       * 在當(dāng)前目錄下創(chuàng)建文件夾       * @param dir       * @return       * @throws Exception       */  private boolean createDir(String dir) {   try {    ftpClient.ascii();    StringTokenizer s = new StringTokenizer(dir, "/"); //sign          s.countTokens();    String pathName = ftpClient.pwd();    while (s.hasMoreElements()) {     pathName = pathName + "/" + (String) s.nextElement();     try {      ftpClient.sendServer("MKD " + pathName + "\r\n");     } catch (Exception e) {      e = null;      return false;     }     ftpClient.readServerResponse();    }    ftpClient.binary();    return true;   } catch (IOException e1) {    e1.printStackTrace();    return false;   }  }  /**       * ftp上傳       * 如果服務(wù)器段已存在名為filename的文件夾,該文件夾中與要上傳的文件夾中同名的文件將被替換       *        * @param filename 要上傳的文件(或文件夾)名       * @return       * @throws Exception       */  public boolean upload(String filename) {   String newname = "";   if (filename.indexOf("/") > -1) {    newname = filename.substring(filename.lastIndexOf("/") + 1);   } else {    newname = filename;   }   return upload(filename, newname);  }  /**       * ftp上傳       * 如果服務(wù)器段已存在名為newName的文件夾,,該文件夾中與要上傳的文件夾中同名的文件將被替換       *        * @param fileName 要上傳的文件(或文件夾)名       * @param newName 服務(wù)器段要生成的文件(或文件夾)名       * @return       */  public boolean upload(String fileName, String newName) {   try {    String savefilename = new String(fileName.getBytes("ISO-8859-1"), "GBK");    File file_in = new File(savefilename);//打開本地待長傳的文件          if (!file_in.exists()) {     throw new Exception("此文件或文件夾[" + file_in.getName() + "]有誤或不存在!");    }    if (file_in.isDirectory()) {     upload(file_in.getPath(), newName, ftpClient.pwd());    } else {     uploadFile(file_in.getPath(), newName);    }    if (is != null) {     is.close();    }    if (os != null) {     os.close();    }    return true;   } catch (Exception e) {    e.printStackTrace();    System.err.println("Exception e in Ftp upload(): " + e.toString());    return false;   } finally {    try {     if (is != null) {      is.close();     }     if (os != null) {      os.close();     }    } catch (IOException e) {     e.printStackTrace();    }   }  }  /**       * 真正用于上傳的方法       * @param fileName       * @param newName       * @param path       * @throws Exception       */  private void upload(String fileName, String newName, String path) throws Exception {   String savefilename = new String(fileName.getBytes("ISO-8859-1"), "GBK");   File file_in = new File(savefilename);//打開本地待長傳的文件         if (!file_in.exists()) {    throw new Exception("此文件或文件夾[" + file_in.getName() + "]有誤或不存在!");   }   if (file_in.isDirectory()) {    if (!isDirExist(newName)) {     createDir(newName);    }    ftpClient.cd(newName);    File sourceFile[] = file_in.listFiles();    for (int i = 0; i < sourceFile.length; i++) {     if (!sourceFile[i].exists()) {      continue;     }     if (sourceFile[i].isDirectory()) {      this.upload(sourceFile[i].getPath(), sourceFile[i].getName(), path + "/" + newName);     } else {      this.uploadFile(sourceFile[i].getPath(), sourceFile[i].getName());     }    }   } else {    uploadFile(file_in.getPath(), newName);   }   ftpClient.cd(path);  }  /**       *  upload 上傳文件       *        * @param filename 要上傳的文件名       * @param newname 上傳后的新文件名       * @return -1 文件不存在 >=0 成功上傳,,返回文件的大小       * @throws Exception       */  public long uploadFile(String filename, String newname) throws Exception {   long result = 0;   TelnetOutputStream os = null;   FileInputStream is = null;   try {    java.io.File file_in = new java.io.File(filename);    if (!file_in.exists())     return -1;    os = ftpClient.put(newname);    result = file_in.length();    is = new FileInputStream(file_in);    byte[] bytes = new byte[1024];    int c;    while ((c = is.read(bytes)) != -1) {     os.write(bytes, 0, c);    }   } finally {    if (is != null) {     is.close();    }    if (os != null) {     os.close();    }   }   return result;  }  /**       * 從ftp下載文件到本地       *        * @param filename 服務(wù)器上的文件名       * @param newfilename 本地生成的文件名       * @return       * @throws Exception       */  public long downloadFile(String filename, String newfilename) {   long result = 0;   TelnetInputStream is = null;   FileOutputStream os = null;   try {    is = ftpClient.get(filename);    java.io.File outfile = new java.io.File(newfilename);    os = new FileOutputStream(outfile);    byte[] bytes = new byte[1024];    int c;    while ((c = is.read(bytes)) != -1) {     os.write(bytes, 0, c);     result = result + c;    }   } catch (IOException e) {    e.printStackTrace();   } finally {    try {     if (is != null) {      is.close();     }     if (os != null) {      os.close();     }    } catch (IOException e) {     e.printStackTrace();    }   }   return result;  }  /**       * 取得相對于當(dāng)前連接目錄的某個目錄下所有文件列表       *        * @param path       * @return       */  public List getFileList(String path) {   List list = new ArrayList();   DataInputStream dis;   try {    dis = new DataInputStream(ftpClient.nameList(this.path + path));    String filename = "";    while ((filename = dis.readLine()) != null) {     list.add(filename);    }   } catch (IOException e) {    e.printStackTrace();   }   return list;  }  public static void main(String[] args) {   FtpUtil ftp = new FtpUtil("133.224.202.2", "tstbill", "tstbill");   ftp.connectServer();   boolean result = ftp.upload("C:/test_why", "test_why/test");   System.out.println(result ? "上傳成功!" : "上傳失??!");   List list = ftp.getFileList("test_why/test");   for (int i = 0; i < list.size(); i++) {    String name = list.get(i).toString();    System.out.println(name);   }   ftp.closeServer();   /**       FTP遠(yuǎn)程命令列表       USER    PORT    RETR    ALLO    DELE    SITE    XMKD    CDUP    FEAT       PASS    PASV    STOR    REST    CWD     STAT    RMD     XCUP    OPTS       ACCT    TYPE    APPE    RNFR    XCWD    HELP    XRMD    STOU    AUTH       REIN    STRU    SMNT    RNTO    LIST    NOOP    PWD     SIZE    PBSZ       QUIT    MODE    SYST    ABOR    NLST    MKD     XPWD    MDTM    PROT       在服務(wù)器上執(zhí)行命令,如果用sendServer來執(zhí)行遠(yuǎn)程命令(不能執(zhí)行本地FTP命令)的話,所有FTP命令都要加上\r\n       ftpclient.sendServer("XMKD /test/bb\r\n"); //執(zhí)行服務(wù)器上的FTP命令       ftpclient.readServerResponse一定要在sendServer后調(diào)用       nameList("/test")獲取指目錄下的文件列表       XMKD建立目錄,,當(dāng)目錄存在的情況下再次創(chuàng)建目錄時報錯       XRMD刪除目錄       DELE刪除文件        */  } }

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多