سؤال

وأريد الحصول على حجم محرك الأقراص (أو مسار UNC لافتا إلى قسم من شأنه أن يكون لطيفا، ولكن غير مطلوب)، فضلا عن مساحة حرة للمحرك المذكور (أو مسار UNC). هذا لا يحتاج للعمل عبر منصة. فقط في ويندوز.

وأنا أعلم أنه من السهل القيام به في جافا 6، ولكن هذا ليس خيارا. أنا عالقة مع جافا 5.

ويمكنني الحصول على المساحة الحرة المتوفرة عن طريق القيام:

<اقتباس فقرة>   

وCMD.EXE / ج Z: \ / -c

     

أو

     

وCMD.EXE / ج \\ الخادم \ حصة / -c

وومجرد تحليل من وحدات البايت الناتجة مجانا. ولكن أنا لا يمكن أن يبدو لايجاد وسيلة للحصول على إجمالي حجم محرك الأقراص.

وأي اقتراحات؟

هل كانت مفيدة؟

المحلول

واحد طريقة للقيام بذلك سيكون لاستخدام fsutil على سطر الأوامر. فهو يعيد شيئا من هذا القبيل:

D:\>fsutil fsinfo ntfsinfo c:
NTFS Volume Serial Number :       0xd49cf9cf9cf9ac5c
Version :                         3.1
Number Sectors :                  0x0000000004a813ff
Total Clusters :                  0x000000000095027f
Free Clusters  :                  0x00000000002392f5
Total Reserved :                  0x0000000000000490
Bytes Per Sector  :               512
Bytes Per Cluster :               4096
Bytes Per FileRecord Segment    : 1024
Clusters Per FileRecord Segment : 0
Mft Valid Data Length :           0x000000000e70c000
Mft Start Lcn  :                  0x00000000000c0000
Mft2 Start Lcn :                  0x0000000000000010
Mft Zone Start :                  0x0000000000624ea0
Mft Zone End   :                  0x0000000000643da0

وMultipy رقمك من القطاعات مرات بايت لكل قطاع للحصول على حجم الخاصة بك.

نصائح أخرى

هل يمكن أن تفعل هذا بسهولة جدا باستخدام استدعاء JNI إذا كنت مرتاحا مع ذلك ...

إذا كنت ترغب في مكتبة المعلبة التي يمكنك استخدامها مع JDK1.5، نلقي نظرة على في أباتشي FileSystemUtils

وهذه يلتف مجرد دعوة النظام الذي تصفون، ولكن على الأقل انها المكتبة القياسية التي يمكنك استخدامها حتى تكون قادرة على استخدام 1.6.

هل يمكن استخدام مكتبة، والذي يتيح لك الوصول الأصلي على العديد من المنصات .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top