Nous travaillons avec du code hérité qui accède à un lecteur partagé par la lettre (f: \ par exemple). L'utilisation de la notation UNC n'est pas une option. Notre application Java wrapper fonctionnera comme un service, et comme première étape, je voudrais mapper le lecteur explicitement dans le code. Est-ce que quelqu'un a fait ça?Comment puis-je monter un lecteur Windows en Java?
Répondre
Pensez à exécuter la commande DOS qui mappe un lecteur réseau comme dans le code suivant:
String command = "c:\\windows\\system32\\net.exe use f: \\\\machine\\share /user:user password";
Process p = Runtime.getRuntime().exec(command);
...
Voir les détails sur commande net use:
The syntax of this command is: NET USE [devicename | *] [\\computername\sharename[\volume] [password | *]] [/USER:[domainname\]username] [/USER:[dotted domain name\]username] [/USER:[[email protected] domain name] [/SMARTCARD] [/SAVECRED] [[/DELETE] | [/PERSISTENT:{YES | NO}]] NET USE {devicename | *} [password | *] /HOME NET USE [/PERSISTENT:{YES | NO}]
Que se passe-t-il si l'utilisateur a déjà mappé f:? Que se passe-t-il si nous exécutons le même programme plusieurs fois et que nous le détruisons au milieu (par exemple pendant la session de débogage)? – ddimitrov
Si l'utilisateur a déjà mappé le lecteur f: vous obtiendrez le message "L'erreur système 85 s'est produite". dans la sortie du processus. Vous pouvez simplement scanner pour cela. –
Je pense que le moyen le plus simple est d'utiliser la méthode Runtime.getRuntime(). Exec() et d'appeler la commande "net use".
Par exemple:
try {
// Execute a command without arguments
String command = "C:\\Windows\\system32\\net.exe use F: \\\\server\\share /user:user password";
Process child = Runtime.getRuntime().exec(command);
} catch (IOException e) {
}
L'utilisation directe de net.exe ne gère pas les cas d'erreur et n'est pas neutre pour la plate-forme. – munsingh
Vous pouvez utiliser JCIFS
http://jcifs.samba.org/src/docs/api/jcifs/smb/SmbFile.html
ou si vous voulez plus API de niveau et de soutien pour d'autres protocoles tels que FTP, Zip et autres:
http://commons.apache.org/vfs/filesystems.html
Les deux options sont pures Java et la plate-forme de croix.
- 1. Comment monter un objet générique?
- 2. Comment éjecter un volume en Java?
- 3. Comment intégrer un lecteur multimédia
- 4. Lecteur flash autonome pour Windows CE
- 5. monter un partage Windows smb sur OS X pour qu'il soit accessible par l'utilisateur 'www'
- 6. Restreindre l'extension shell Windows au dossier/lecteur
- 7. Lecteurs USB et limite de lecteur Windows
- 8. Comment désérialiser un fragment Xml en utilisant le lecteur XML
- 9. Comment savoir sur quel lecteur une application Java est installée?
- 10. Monter des superpositions/snapshots LVM?
- 11. Monter un système de fichiers distant à l'aide de SSHFS
- 12. Comment programmer un lecteur de musique simple?
- 13. IOException pour un lecteur plein ou en dehors de l'espace
- 14. Dans PowerShell, comment puis-je déterminer la racine d'un lecteur (en supposant qu'il est un lecteur réseau)
- 15. Android: Comment créer un lecteur vidéo?
- 16. comment créer un lecteur rss avec php?
- 17. .NET: Comment convertir un formulaire Windows en un contrôle Windows
- 18. Dans PowerShell, comment puis-je déterminer si le lecteur actuel est un lecteur réseau ou non?
- 19. Comment rendre un lecteur local visible à une image Windows XP VMWare?
- 20. Comment puis-je détecter la lettre de lecteur d'un lecteur USB démarré à partir du script?
- 21. Où puis-je trouver un lecteur Lisp en C?
- 22. Lecteur vidéo personnalisé en Flex
- 23. Réparer un mappage de lecteur «déconnecté»
- 24. Catch réseau monter/descendre adaptateur et l'événement changé d'adresse (Windows, C#)
- 25. Dans Java sous Windows, comment trouver un dossier Desktop redirigé?
- 26. Comment découvrir le type de support inséré dans un lecteur de DVD/CD? (java)
- 27. Comment détecter si un lecteur spécifique est un disque dur?
- 28. Comment appeler un processus Java à partir de Windows Powershell?
- 29. Développement Drupal sur un lecteur de pouce
- 30. System.IO.Stream jetable avec un lecteur
S'il s'agit d'un 'utilisateur', pensez à choisir une lettre vers la fin de l'alphabet qui ne sera pas indisponible si un ou deux périphériques USB sont branchés. – Cheekysoft
C'est un bon conseil. Les périphériques USB prennent le premier disponible. Dans notre cas, la lettre de choix est hors de notre contrôle. Nous avons juste besoin de le faire cartographier. –