java向SFTP服务器上传文件,如何判断服务器上的文件夹是否存在?
使用jsch.jar 里的com.jcraft.jsch.ChannelSftp;如何判断服务器上的文件夹是否存在?
使用这种方法可以
try{
sftp.cd(directory);
}catch(SftpException sException){
if(sftp.SSH_FX_NO_SUCH_FILE == sException.id){
makeDir(directory,sftp);
sftp.cd(directory);
}
} 展开
如果你的JAVA部署的tomcat,就是你要查找文件的服务器,那就用:
File file = new File("文件路径")。
如果你本地的JAVA想要访问远程的一个服务器的文件是否存在,就得用如下方法:
URL url = new URL(“文件路径:可以是本地服务器的路径,也可以是远程服务器的路径”)
HttpURLConnection urlcon = (HttpURLConnection) url.openConnection();
//message = urlcon.getHeaderField(0);
//文件存在‘HTTP/1.1 200 OK’ 文件不存在 ‘HTTP/1.1 404 Not Found’
Long TotalSize=Long.parseLong(urlcon.getHeaderField("Content-Length"));
if (TotalSize>0){
return true;
}else{
return false;
}
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
drwxr-xr-x 2 root root 4096 May 22 15:30 properties 文件夹
-rw-r--r-- 1 root root 609518567 Jun 11 16:43 123.zip 文件
ChannelSftp sftp = sf.connect(host, port, username, password);
Vector<LsEntry> vector = new Vector<LsEntry>();
try {
vector = sftp.ls("/");
Iterator<LsEntry> it = vector.iterator();
while (it.hasNext()) {
LsEntry lsEntry = it.next();
System.out.println(lsEntry.getLongname());
System.out.println(lsEntry.getLongname().startsWith("d"));
}
} catch (Exception e) {
e.printStackTrace();
}
//lsEntry.getLongname().startsWith("d") 来判断是不是文件夹
if(content == null) {
sftp.mkdir(file.getName());
}
f.isFile()
这个方法不行 他判断的是本地路径 没有判断远程服务器路径