在Java中检查该路径是否存在于服务器上
我正在创建一个Java程序,在该程序中,我将文件上传到特定路径上的服务器。我正在为在Java中检查该路径是否存在于服务器上,java,sftp,jsch,file-exists,Java,Sftp,Jsch,File Exists,我正在创建一个Java程序,在该程序中,我将文件上传到特定路径上的服务器。我正在为sftp使用jSch 所以,在上传文件之前,我想检查服务器上是否存在给定的目录 if(path exists) //upload file to the location else //create the directory and then upload the file. 如何检查路径是否存在 注意:我正在客户端上执行代码,该客户端将检查服务器上是否存在远程目录。所以请不要建议File.ex
sftp
使用jSch
所以,在上传文件之前,我想检查服务器上是否存在给定的目录
if(path exists)
//upload file to the location
else
//create the directory and then upload the file.
如何检查路径是否存在
注意:我正在客户端上执行代码,该客户端将检查服务器上是否存在远程目录。所以请不要建议
File.exists()
我不熟悉这个库,但是从这个示例代码来看:它看起来可以使用
ChannelSftp c = ..;
c.ls('<path>')
channelsftpc=。。;
c、 ls(“”)
要检索该文件,这将告诉您该文件是否存在。读取该文件时,您可以查看目录:
SftpATTRS attrs = channelSftp.lstat(path);
如果抛出异常,则该异常不存在。然后可以使用
channelSftp.mkdir(path)
创建它。新文件(“”.exists()@BrianRoach-OP希望通过ftp从客户端程序检查服务器上是否存在文件File.exists()
不起作用。看起来是这样,但老实说,它很容易被错误地阅读。我还是读了两遍才明白你的意思;我一直忽略第一句话。我不知道为什么这个问题被否决了???我想检查服务器上而不是本地计算机上的路径。。。File.exists()在服务器上不起作用……我不知道为什么会投反对票,但我可以猜测:您的问题的措辞表明,只需调用File.exists()
或File.isDirectory()
即可。您应该改写它,以澄清您想强调的是,您需要在客户端上执行代码,以检查服务器上是否存在远程目录。请尝试一下,如果路径不存在,它不会返回null,但会引发异常(没有这样的文件)。@AnkitLamba So。。。这是你的答案。文档对于库来说太糟糕了,我真的说不出来,快速阅读他的代码也没什么帮助(这不完全是自文档)。(编辑以更改结果)@AnkitLamba-您只需捕获异常以检测目录不存在。您可以尝试使用channelSftp.ls(“”)列出父目录的内容,并检查所需文件夹是否存在。@Sudhanshu为什么?因此,您可以添加不必要的字符串处理到您的代码中以获得乐趣?