如何使用java的ChannelSftp删除一个文件夹下的所有文件?

如何使用java的ChannelSftp删除一个文件夹下的所有文件?,第1张

public class CopyFile {

public static void main(String[] args) throws IOException {

FileInputStream readFis=new FileInputStream("d:/1.txt")

FileChannel readFc=readFis.getChannel()

ByteBuffer bb=ByteBuffer.allocate(1024)

readFc.read(bb)

FileOutputStream writeFis=new FileOutputStream("d:/2.txt")

FileChannel writeFs=writeFis.getChannel()

writeFs.write((ByteBuffer) bb.flip())

}

}

我就是用sftp传输的,Android下,就是用手机录音,然后把录下来的音频文件保存到服务器里,给你源代码吧,

import java.io.File

import java.io.FileInputStream

import java.io.FileOutputStream

import java.util.Date

import java.util.Properties

import java.util.Vector

import android.content.Context

import android.telephony.TelephonyManager

import android.text.format.DateFormat

import android.text.format.Time

import com.jcraft.jsch.Channel

import com.jcraft.jsch.ChannelSftp

import com.jcraft.jsch.JSch

import com.jcraft.jsch.Session

import com.jcraft.jsch.SftpException

public class Sftp_upload {

 /**

  * 连接sftp服务器

  * @param host 主机

  * @param port 端口

  * @param username 用户名

  * @param password 密码

  * @return

  */

 public ChannelSftp connect(String host, int port, String username,String password) {

 

 ChannelSftp sftp = null

  try {

   JSch jsch = new JSch()

   jsch.getSession(username, host, port)

   Session sshSession = jsch.getSession(username, host, port)

   System.out.println("Session created.")

   sshSession.setPassword(password)

   Properties sshConfig = new Properties()

   sshConfig.put("StrictHostKeyChecking", "no")

   sshSession.setConfig(sshConfig)

   sshSession.connect()

   System.out.println("Session connected.")

   System.out.println("Opening Channel.")

   Channel channel = sshSession.openChannel("sftp")

   channel.connect()

   sftp = (ChannelSftp) channel

   System.out.println("Connected to " + host + ".")

   //System.out.println("登录成功")

  } catch (Exception e) {

  }

  return sftp

 }

 /**

  * 上传文件

  * @param directory 上传的目录

  * @param uploadFile 要上传的文件

  * @param sftp

  */

 public void upload(String directory, String uploadFile, ChannelSftp sftp) {

  

 try {

   sftp.cd(directory)

   File file=new File(uploadFile)

  

   String currentTime=DateFormat.format("yyyy_MM_dd_hh_mm_ss", new Date()).toString() //获取时间

   String filename=currentTime+".wav" //文件名为当前时间来保存

   sftp.put(new FileInputStream(file), filename)   

  

   System.out.println("上传成功!")

} catch (Exception e) {

   e.printStackTrace()

  }

 }

 /**

  * 下载文件

  * @param directory 下载目录

  * @param downloadFile 下载的文件

  * @param saveFile 存在本地的路径

  * @param sftp

  */

 public void download(String directory, String downloadFile,String saveFile, ChannelSftp sftp) {

  try {

   sftp.cd(directory)

   File file=new File(saveFile)

   sftp.get(downloadFile, new FileOutputStream(file))

  } catch (Exception e) {

   e.printStackTrace()

  }

 }

 /**

  * 删除文件

  * @param directory 要删除文件所在目录

  * @param deleteFile 要删除的文件

  * @param sftp

  */

 public void delete(String directory, String deleteFile, ChannelSftp sftp) {

 try {

   sftp.cd(directory)

   sftp.rm(deleteFile)

  } catch (Exception e) {

   e.printStackTrace()

  }

 }

 /**

  * 列出目录下的文件

  * @param directory 要列出的目录

  * @param sftp

  * @return

  * @throws SftpException

  */

 public Vector listFiles(String directory, ChannelSftp sftp) throws SftpException{

  

 return sftp.ls(directory)

 

 }

 

 //上传文件

 

 

 public static void Sftp_server(String file,String imsi) {

  String Imsi = imsi  

  Sftp_upload sf = new Sftp_upload() 

  String host = "192.168.1.60"

  int port = 22

  String username = "root"

  String password = "123456"

  String directory = "/data/test/wav"

  //String uploadFile = "c:\\audiocheck\\test.wav"

  String uploadFile = file

 // String downloadFile = "/data/test/wav/lame.sh"

// String saveFile = "c:\\audiocheck\\content.txt"

 // String deleteFile = "c:\\audiocheck\\content.txt"

  ChannelSftp sftp=sf.connect(host, port, username, password)

  

  //sf.download(directory, downloadFile, saveFile, sftp)

  //sf.delete(directory, deleteFile, sftp)

   try{

   sftp.cd(directory)

   sftp.mkdir(Imsi) //创建目录

   System.out.println("finished")

  }catch(Exception e){

  e.printStackTrace()

  }

  directory = "/data/test/wav/"+imsi

  sf.upload(directory, uploadFile, sftp)//上传文件到服务器

 

 }

 

}

这个就是源代码,

然后上传的时候用的代码

//imsi也就是 手机的型号来创建文件夹的,这些你都可以修改的。

String file = mWorkdir+"/"+"resFile.wav" //要上传的文件

Sftp_upload.Sftp_server(file,imsi) //上传文件

System.out.println("已上传")

可以直接通过流的形式上传或者下载。

import java.io.File

import java.io.FileInputStream

import java.io.FileOutputStream

import java.util.Properties

import com.jcraft.jsch.Channel

import com.jcraft.jsch.ChannelSftp

import com.jcraft.jsch.JSch

import com.jcraft.jsch.Session

import com.jcraft.jsch.SftpException

import hkrt.b2b.view.util.Log

import java.util.Vector

import zn.ccfccb.util.CCFCCBUtil

/**

*/

public class CCFCCBSftp {

/**

* 连接sftp服务器

*

* @return

*/

public static ChannelSftp connect() {

ChannelSftp sftp = null

try {

JSch jsch = new JSch()

jsch.getSession(CCFCCBUtil.CCFCCBHOSTNAME, CCFCCBUtil.CCFCCBHOSTNAME, 22)

Session sshSession = jsch.getSession(CCFCCBUtil.CCFCCBLOGINNAME, CCFCCBUtil.CCFCCBHOSTNAME, 22)

System.out.println("Session created.")

sshSession.setPassword(CCFCCBUtil.CCFCCBLOGINPASSWORD)

Properties sshConfig = new Properties()

sshConfig.put("StrictHostKeyChecking", "no")

sshSession.setConfig(sshConfig)

sshSession.connect()

System.out.println("Session connected.")

System.out.println("Opening Channel.")

Channel channel = sshSession.openChannel("sftp")

channel.connect()

sftp = (ChannelSftp) channel

System.out.println("Connected to " + CCFCCBUtil.CCFCCBHOSTNAME + ".")

} catch (Exception e) {

}

return sftp

}

/**

* 连接sftp服务器

*

* @param host 主机

* @param port 端口

* @param username 用户名

* @param password 密码

* @return

*/

public static ChannelSftp connect(String host, int port, String username,

String password) {

ChannelSftp sftp = null

try {

JSch jsch = new JSch()

jsch.getSession(CCFCCBUtil.CCFCCBHOSTNAME, CCFCCBUtil.CCFCCBHOSTNAME, 22)

Session sshSession = jsch.getSession(CCFCCBUtil.CCFCCBLOGINNAME, host, port)

System.out.println("Session created.")

sshSession.setPassword(CCFCCBUtil.CCFCCBLOGINPASSWORD)

Properties sshConfig = new Properties()

sshConfig.put("StrictHostKeyChecking", "no")

sshSession.setConfig(sshConfig)

sshSession.connect()

System.out.println("Session connected.")

System.out.println("Opening Channel.")

Channel channel = sshSession.openChannel("sftp")

channel.connect()

sftp = (ChannelSftp) channel

System.out.println("Connected to " + host + ".")

} catch (Exception e) {

}

return sftp

}

/**

* 上传文件

*

* @param directory 上传的目录

* @param uploadFile 要上传的文件

* @param sftp

*/

public void upload(String directory, String uploadFile, ChannelSftp sftp) {

try {

sftp.cd(directory)

File file = new File(uploadFile)

sftp.put(new FileInputStream(file), file.getName())

} catch (Exception e) {

e.printStackTrace()

}

}

/**

* 下载文件

*

* @param directory 下载目录

* @param downloadFile 下载的文件

* @param saveFile 存在本地的路径

* @param sftp

* @return

*/

public static String download(String directory, String downloadFile, String saveFile, ChannelSftp sftp) {

try {

sftp.cd(directory)

File file = new File(saveFile)

FileOutputStream fos = new FileOutputStream(file)

sftp.get(downloadFile, fos)

sftp.disconnect()

fos.close()

} catch (Exception e) {

Log.info("下载文件过程出错:" + e.getMessage())

return "false"

}

return "true"

}

/**

* 删除文件

*

* @param directory 要删除文件所在目录

* @param deleteFile 要删除的文件

* @param sftp

*/

public void delete(String directory, String deleteFile, ChannelSftp sftp) {

try {

sftp.cd(directory)

sftp.rm(deleteFile)

} catch (Exception e) {

}

}

/**

* 列出目录下的文件

*

* @param directory 要列出的目录

* @param sftp

* @return

* @throws SftpException

*/

public Vector listFiles(String directory, ChannelSftp sftp) throws SftpException {

return sftp.ls(directory)

}

public static void main(String[] args) {

CCFCCBSftp sf = new CCFCCBSftp()

String host = CCFCCBUtil.CCFCCBHOSTNAME

int port = 22

String username = CCFCCBUtil.CCFCCBLOGINNAME

String password = CCFCCBUtil.CCFCCBLOGINPASSWORD

String directory = "/ccfccb/904999900099/download/"

//String uploadFile = "D:\\tmp\\upload.txt"

String downloadFile = "CCF_904999900099_20150317_0001.zip"

String saveFile = CCFCCBUtil.CCFCCBUploadFilePath + "//" + "CCF_904999900099_20150317_0001.zip"

//String deleteFile = "delete.txt"

ChannelSftp sftp = CCFCCBSftp.connect(host, port, username, password)

//sf.upload(directory, uploadFile, sftp)

CCFCCBSftp.download(directory, downloadFile, saveFile, sftp)

//sf.delete(directory, deleteFile, sftp)

try {

sftp.cd(directory)

//sftp.mkdir("ss")

System.out.println("finished")

} catch (Exception e) {

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11795951.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存