您的位置:首页 > 其它

KVM安装工作记录

2013-11-19 10:43 225 查看
一个令人纠结的问题:java程序运行在windows平台上,需要对远程linux服务器上的文件进行操作,如何判断一个指定目录是否在远程服务器上已经存在?

因为两个平台的文件系统不一样,不能简单地通过java.io.File里的exists()来实现。在我看来非常强大的com.jcraft.jsch.ChannelSftp也没有直接提供类似的api。想来想去,找到了一个比较tricky的方法。

先来看一小段代码:

try{
Vector content = channelSftp.ls(dir);
if(content == null) {
channelSftp.mkdir(dir);
}
} catch (SftpException e) {
channelSftp.mkdir(dir);
}

在不考虑其它一切外部因素的情况下,目标目录dir如果已经存在,content不会为null,哪怕它是一个空目录,如果dir不存在,会抛出一个SftpException,在catch block里可以作进一步处理。

哪位有什么更好的方法,可以交流交流。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: