Quelqu'un pourrait-il m'aider à copier le fichier du dossier partagé au disque local? Mon code est:Comment copier un fichier depuis un partage smb sur un disque local en utilisant jcifs en Java?
import jcifs.smb.NtlmPasswordAuthentication;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileInputStream;
import jcifs.smb.SmbFileOutputStream;;
public class smb {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
String urlToBackUpFile = "smb://ip/backup$/test.txt";
System.out.println("smb folder of source file" + urlToBackUpFile);
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(null, "login", "pass");
SmbFile dir = new SmbFile(urlToBackUpFile, auth);
System.out.println(dir.getDate());
SmbFile dest = new SmbFile ("C:/SQLRESTORESTAGE/v2.bak");
dir.copyTo(dest);
}
}
Le fichier de fichier n'est pas copié. J'ai reçu un message "Impossible de se connecter au serveur", mais le programme affiche dir.getDate() (et le nom du fichier et la longueur) du fichier source. Donc, je pense que le problème avec le dossier de destination (C:/SQLRESTORESTAGE /). Aussi, j'ai proviledges seulement pour lire le fichier source. Pourriez-vous m'aider à décrire le code ou à conseiller quelque chose? Je vous remercie.
Juste un petit mot, il est préférable de fermer vos flux dans un bloc finally. – PomCompot
Pour ajouter au commentaire de @PomCompot, je suggère également d'utiliser Apache Commons IO et d'utiliser 'IOUtils.closeQuietly (Closeable c)' pour fermer vos flux dans le bloc 'finally'. Il ignore discrètement toutes les exceptions soulevées en appelant 'close()' sur le flux, alors soyez conscient de cette mise en garde, même si je n'ai pas encore trouvé personnellement qu'il y ait un problème. – Will
Au-dessus du code est travaillé pour moi Merci. –