Pregunta

I'm creating a Java program in which I upload a file to a server on a particular path. I am using jSch for sftp.

So, before uploading the file, I want to check if the given directory exists on server or not.

if(path exists)
    //upload file to the location
else
    //create the directory and then upload the file.

How do I check the path exists or not?

Note: I am executing the code on a client that will check for the existence of a remote directory on a server. So please don't suggest File.exists().

¿Fue útil?

Solución

Reading the Documentation for ChannelSftp it would appear you can just lstat the directory:

SftpATTRS attrs = channelSftp.lstat(path);

If that throws an exception, it doesn't exist. You can then use channelSftp.mkdir(path) to create it.

Otros consejos

I am not familiar with this library, but from this example code: http://www.jcraft.com/jsch/examples/Sftp.java.html it looks like you can use

ChannelSftp c = ..;
c.ls('<path>')

to retrieve the file, this should tell you whether it exists or not.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top