كيف يمكنني تحميل محرك أقراص ويندوز في جافا؟

StackOverflow https://stackoverflow.com/questions/208839

  •  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) {
    }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top