当前位置: 首页 > news >正文

网站流量与带宽网站开发网站设计素材

网站流量与带宽,网站开发网站设计素材,做网站如何获取收益,南京软件外包背景 常用的 Java SSH 操作工具包是 jsch #xff0c;FTP 工具包 commons-net #xff0c;本文介绍本文总结 Java 程序通过 SFTP 协议和 FTP 协议访问远程文件的过程中#xff0c;需要注意的路径问题。 本文将解答下面三个问题#xff1a; FTPClient 获取当前用户根目录…背景 常用的 Java SSH 操作工具包是 jsch FTP 工具包 commons-net 本文介绍本文总结 Java 程序通过 SFTP 协议和 FTP 协议访问远程文件的过程中需要注意的路径问题。 本文将解答下面三个问题 FTPClient 获取当前用户根目录的方法ChannelSftp 获取当前用户根目录的方法。目录切换时如果是相对目录可能存在的问题。目标目录不存在时逐级创建目录的方法。 相对路径操作注意事项 jsch 通过 ChannelSftp 访问 SFTP 时获取当前登录用户根目录的方法有两种 pwd() 方法getHome() 方法 两者在刚刚登录成功后返回的值是一样的都是当前登录用户的 home 目录。 FTPClient 获取当前登录用户的根目录方法为printWorkingDirectory() 。 注意如果操作的目标目录是相对路径例如目标目录变量名称为 dir判断绝对路径的方法为 boolean isNotAbsolutePath !dir.startWith(File.separator); if (isNotAbsolutePath) {String homePath ftpClient.printWorkingDirectory();或 String homePath sftpChannel.pwd();// 最后拼接上根目录dir homePath File.separator dir; }修正操作目标路径为绝对路径后后面的操作就不会报文件不存在错误了。 listFiles 的内容 FTPClient 的 listFiles 文件列表中不包含 . 和 .. 这两个特殊的文件但是使用 jsch 的 ChannelSftp 的 ls 直接列出的文件却包含 . 和 .. 。 所以在遍历文件过程中对于 Sftp 访问操作需要排除这两种特殊文件。 相对路径时 ls 或 cd 异常问题 如果使用相对路径ChannelSftp 的 ls 操作会异常 com.jcraft.jsch.SftpException: No such fileat com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2873) ~[jsch-0.1.54.jar:?]at com.jcraft.jsch.ChannelSftp._stat(ChannelSftp.java:2225) ~[jsch-0.1.54.jar:?]at com.jcraft.jsch.ChannelSftp._stat(ChannelSftp.java:2242) ~[jsch-0.1.54.jar:?]at com.jcraft.jsch.ChannelSftp.ls(ChannelSftp.java:1592) ~[jsch-0.1.54.jar:?]at com.jcraft.jsch.ChannelSftp.ls(ChannelSftp.java:1553) ~[jsch-0.1.54.jar:?]解决办法就是第二部分「相对路径操作注意事项」的内容必须在真正切换目录之前拼接上当前登录用户的根目录。 逐级创建目录的方法 Java 的 FTP 和 SFTP 工具操作是的 mkdir 方法当父级目录不存在时直接用目录创建方法会失败只能逐级创建每个目录。 确实有些场景下需要自动创建一个多层级的新目录解决办法就是逐级拆解路径判断当前路径是否存在如果不存在就创建直到到达最后一级。 FTPClient 逐级创建一个目标目录 dirPath 的方法 void createFilePath(FTPClient ftpClient, String filePath) {String[] dirPaths filePath.split(/);for (int i 0; i dirPaths.length; i) {if (StringUtils.isEmpty(dirPaths[i])) {continue;}StringBuffer buffer new StringBuffer();for (int j 0; j i; j) {buffer.append(dirPaths[j]).append(/);}String tempDir buffer.toString();try {// 切换目录如果成功则忽略boolean change ftpClient.changeWorkingDirectory(filePath);if (change) {continue;}// 切换失败则创建boolean result ftpClient.makeDirectory(tempDir);} catch (Exception ex) {// ERROR}} }ChannelSftp 逐级创建一个目标目录 dirPath 的方法 private boolean createFilePath(ChannelSftp channelSftp, String filePath) {String[] dirPaths filePath.split(/);for (int i 0; i dirPaths.length; i) {if (StringUtils.isEmpty(dirPaths[i])) {continue;}StringBuffer buffer new StringBuffer();for (int j 0; j i; j) {buffer.append(dirPaths[j]).append(/);}String tempDir buffer.toString();try {channelSftp.mkdir(tempDir);} catch (SftpException ex) {// ERROR}} }FTPClient 有 changeWorkingDirectory 方法返回一个 boolean 值可以判断目录是否存在不存在可以执行创建操作ChannelSftp 的 cd 没有返回值所以直接mkdir 逐级创建。
http://www.pierceye.com/news/293623/

相关文章:

  • 网站开发 播放音频amr个人网站设计案例
  • 建设一个网站可以采用那几方案常用的网页制作工具有什么
  • 摄影看图网站河南省交通工程造价信息网
  • 网站架构发展历程的思考和心得体会软件开发网站开发培训
  • 陕西天工建设有限公司网站长安网站建设哪家好
  • 东莞网站的建设重庆妇科医院哪家好医院公立医院
  • 北京用网站模板建站wordpress中文 插件下载
  • 做网站公司哪家正规重庆网站建设重庆
  • 网站转备案申请学校网站建设申请书
  • 宜昌网站建设选择宜昌慧享互动线上店免费推广的软件
  • 网站建设主流语言织梦网站流动广告代码
  • 南京做网站公司哪个网站上做ppt比较好看的
  • 在服务器上搭建网站中国建设银行淮南分行网站
  • 网站建设什么服务器品牌哪个好南京企业制作网站
  • 太原有哪些做网站的公司如何伪原创 网站
  • 设计好的网站网站策划方案详解
  • 建网站潞城哪家强?企业网络推广技巧
  • 怎么建设网站让国外看wordpress 公司内网
  • 虚拟主机购买网站网站值不值得做seo
  • 长沙网站排名优化如何在网站做电子杂志
  • 石家庄科技网站在线解压zip网站
  • 不良网站举报中心官网做网站必须买云虚拟主机吗
  • 网站建设实习wordpress 登陆 插件下载
  • 做耳鼻喉医院网站多少钱北京网站建设营销
  • 济南网站建设就选搜点网络ok外贸平台补贴政策
  • 网站建设 学校百度快照优化培训班
  • 做阀门的英文网站怎么写西安seo服务公司排名
  • 淘宝客网站如何做推广古董手表网站
  • 网站虚拟主机查询企业文化建设的内容有哪些
  • 财经大学网站建设apicloud wordpress