كيف يمكنني تحميل محرك أقراص ويندوز في جافا؟
-
03-07-2019 - |
سؤال
ونحن نعمل مع بعض الرموز القديمة التي يصل محرك أقراص مشترك من قبل حرف (F: \ على سبيل المثال). استخدام التدوين UNC ليس خيارا. سيتم تشغيل المجمع لدينا التطبيق جافا كخدمة، وكخطوة أولى، أود أن تعيين محرك الأقراص بشكل صريح في التعليمات البرمجية. لقد فعلت كل هذا؟
المحلول
والنظر في تنفيذ الأمر DOS يعين محرك أقراص شبكة كما في التعليمات البرمجية التالية:
String command = "c:\\windows\\system32\\net.exe use f: \\\\machine\\share /user:user password";
Process p = Runtime.getRuntime().exec(command);
...
وانظر التفاصيل حول الأمر net use:
The syntax of this command is: NET USE [devicename | *] [\\computername\sharename[\volume] [password | *]] [/USER:[domainname\]username] [/USER:[dotted domain name\]username] [/USER:[username@dotted domain name] [/SMARTCARD] [/SAVECRED] [[/DELETE] | [/PERSISTENT:{YES | NO}]] NET USE {devicename | *} [password | *] /HOME NET USE [/PERSISTENT:{YES | NO}]
نصائح أخرى
ويمكنك استخدام JCIFS
http://jcifs.samba.org/src/ مستندات / المعهد / jcifs / SMB / SmbFile.html
وأو إذا كنت تريد API مستوى أعلى ودعم لبروتوكولات أخرى مثل FTP، والرمز البريدي وغيرها:
http://commons.apache.org/vfs/filesystems.html
وكلا الخيارين جافا نقية وعبر منصة.
وأعتقد أن أسهل طريقة هي استخدام Runtime.getRuntime (). إكسيك () طريقة واستدعاء "استخدام صافي" القيادة.
وعلى سبيل المثال:
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) {
}