package com.eiq;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystemOptions;
import org.apache.commons.vfs.Selectors;
import org.apache.commons.vfs.UserAuthenticator;
import org.apache.commons.vfs.VFS;
import org.apache.commons.vfs.auth.StaticUserAuthenticator;
import org.apache.commons.vfs.impl.DefaultFileSystemConfigBuilder;
public class RemoteFileDemo {
public static void main(String[] args) throws IOException {
String domain="hyd\\all";
String userName="chiranjeevir";
String password="[email protected]";
String remoteFilePath="\\\\10.0.15.74\\D$\\Suman\\host.txt";
File f=new File("E:/Suman.txt"); //Takes the default path, else, you can specify the required path
if(f.exists())
{
f.delete();
}
f.createNewFile();
FileObject destn=VFS.getManager().resolveFile(f.getAbsolutePath());
//domain, username, password
UserAuthenticator auth=new StaticUserAuthenticator(domain, userName, password);
FileSystemOptions opts=new FileSystemOptions();
DefaultFileSystemConfigBuilder.getInstance().setUserAuthenticator(opts, auth);
FileObject fo=VFS.getManager().resolveFile(remoteFilePath,opts);
System.out.println(fo.exists());
//fo.createFile();
destn.copyFrom(fo,Selectors.SELECT_SELF);
destn.close();
//InputStream is=new FileInputStream(f);
}
}
Questo è un programma per leggere un file dalla macchina remota e conservarlo nella nostra macchina locale come file di E:/Suman.txt
.
Fare attenzione durante la scrittura il percorso del file significa invece che :
dobbiamo sostituirlo con $
simbolo, ad es .: D:\Suman\Boorla\kpl.txt
è sbagliato, D$\\Suman\\Boorla\\kpl.txt
è giusto.
Nel programma precedente, è necessario modificare il nome del dominio, il nome utente, la password e il percorso del file della macchina remota. Per lavorare con il programma di cui sopra, è necessario aggiungere i seguenti file jar
nel classpath.
commons-vfs.jar
commons-logging.jar
fonte
2013-06-21 08:28:58
la seguente potrebbe essere utile: http://stackoverflow.com/q/208839/1311351 –
Questa è una buona fonte, ma il codice deve funzionare in una macchina Linux e Windows – jaysun