मुझे लगता है कि मैं सिर्फ सिस्टम डिस्क पर, किसी भी भंडारण के लिए पता लगाने में सक्षम होना चाहता हूं, लेकिन यह सबसे महत्वपूर्ण है।आप कोको में कितनी डिस्क स्थान छोड़ी गई है?
उत्तर
संपादित fileSystemAttributesAtPath: हटाई गई है, उपयोग attributesOfFileSystemForPath: त्रुटि: के रूप में एनएसडी का सुझाव दिया। मैंने गलती की जब मैंने सोचा कि यह काम नहीं करता है। त्रुटि लेकिन dict लौटे NSFileSystemFreeNodes कुंजी है लगता नहीं किया:
// this works
NSError *error = nil;
NSDictionary *attr = [NSFM attributesOfFileSystemForPath:@"/" error:&error];
if (!error) {
double bytesFree = [[attr objectForKey:NSFileSystemFreeSize] doubleValue];
}
मैं इस, attributesOfItemAtPath की कोशिश की।
NSFileManager *fm = [NSFileManager defaultManager];
NSError *error = nil;
NSDictionary *attr = [fm attributesOfItemAtPath:@"/" error:&error];
if (!error) {
NSLog(@"Attr: %@", attr);
}
2009-10-28 17:21:11.936 MyApp[33149:a0b] Attr: {
NSFileCreationDate = "2009-08-28 15:37:03 -0400";
NSFileExtensionHidden = 0;
NSFileGroupOwnerAccountID = 80;
NSFileGroupOwnerAccountName = admin;
NSFileModificationDate = "2009-10-28 15:22:15 -0400";
NSFileOwnerAccountID = 0;
NSFileOwnerAccountName = root;
NSFilePosixPermissions = 1021;
NSFileReferenceCount = 40;
NSFileSize = 1428;
NSFileSystemFileNumber = 2;
NSFileSystemNumber = 234881026;
NSFileType = NSFileTypeDirectory;
}
looking around a bit के बाद, यह fileSystemAttributesAtPath की तरह लगता है: विधि है कि यह देता है। अजीब।
NSFileManager *fm = [NSFileManager defaultManager];
NSDictionary *attr = [fm fileSystemAttributesAtPath:@"/"];
NSLog(@"Attr: %@", attr);
2009-10-28 17:24:07.993 MyApp[33283:a0b] Attr: {
NSFileSystemFreeNodes = 5027061;
NSFileSystemFreeSize = 20590841856;
NSFileSystemNodes = 69697534;
NSFileSystemNumber = 234881026;
NSFileSystemSize = 285481107456;
}
"... विशेषताओं का उपयोग करेंफाइल सिस्टम सिस्टमफॉरपैथ: त्रुटि: इसके बजाय।" एनएसडी ने यही सुझाव दिया, और आपने उसे बताया कि यह काम नहीं करता है। क्या यह अब काम करता है? –
हाँ, यह करता है। ऐसा लगता है कि मैंने पहले गलती की थी। – zekel
दो आलोचकों: 'त्रुटि:' पैरामीटर किसी ऑब्जेक्ट को पॉइंटर पर पॉइंटर लेते हैं, 'एनएसईआरर **'। इस प्रकार, सही नल सूचक स्थिरांक 'शून्य 'नहीं है (जो किसी ऑब्जेक्ट के लिए सूचक होगा, या तो'
मैं इस का उपयोग करें:
NSDictionary* fileAttributes = [[NSFileManager defaultManager] attributesOfFileSystemForPath:@"/"
error:&error];
unsigned long long freeSpace = [[fileAttributes objectForKey:NSFileSystemFreeSize] longLongValue];
NSLog(@"free disk space: %dGB", (int)(freeSpace/1073741824));
बिल्कुल सही कोड! आकर्षण की तरह काम करता है! साझा करने के लिए बहुत बहुत धन्यवाद। :) – zeFree
मेरा 2 सेंट - 1) अन्य वॉल्यूम्स के लिए जानकारी देखने के लिए @ "/" के स्थान पर वॉल्यूम के पथ वाले एनएसएसटींग का उपयोग करें। 2) यह बेहतर होगा अगर हम लंबे समय तक चलने के बजाय unsignedLongLongValue का उपयोग करें। – zeFree
हार्ड डिस्क उपकरण निर्माताओं, उपयोग:
1GB = 1000MB
1 एमबी = 1000 KB आदि
यदि आप देखते हैं विंडोज़ में एक 8 जीबी यूएसबी स्टिक हमेशा वास्तविक से कम जगह दिखाती है (जैसे 7,8 जीबी) क्योंकि यह 1 जीबी = 1024 एमबी माना जाता है)। ओएसएक्स में एक ही यूएसबी स्टिक 8 जीबी (असली) है।
तो (freeSpace/1073741824)
होना चाहिए (freeSpace/1000000000)
कम से कम OSX में
किसके पास डाउनवोट है, मैं गiga, मेगा इत्यादि के अर्थ के लिए ग्रीक शब्दावली को देखने के लिए आमंत्रित करता हूं .. – Mike97
आपका उत्तर अच्छा और संभावित रूप से उपयोगी मामूली है, लेकिन यह पूछे जाने वाले प्रश्न का उत्तर नहीं देता है। –
धन्यवाद माइकल, मैं इस के साथ वास्तव में ठीक हूं (यानी यदि मेरी टिप्पणी ओटी है), लेकिन दुर्भाग्य से यहां दिए गए उत्तरों को केवल गलत माना गया था यदि आप कोको टैग + हार्डड्राइव पर विचार करते हैं। मेरे उत्तर में पहले से ही पोस्ट किए गए कोड में सुधार शामिल है (यह ठीक होना चाहिए क्योंकि सुधार नहीं है लेकिन सुधार है)। तो यदि आप सही जगह को छोड़ देते हैं, तो आपको 1024 के बजाय 1000 में से कई का उपयोग करना होगा अन्यथा परिणाम गलत होगा, क्योंकि कोको पहले ही इसका उपयोग कर रहा है। – Mike97
this post से प्राप्त करें:
- (uint64_t)freeDiskspace
{
uint64_t totalSpace = 0;
uint64_t totalFreeSpace = 0;
__autoreleasing NSError *error = nil;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error];
if (dictionary) {
NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemSize];
NSNumber *freeFileSystemSizeInBytes = [dictionary objectForKey:NSFileSystemFreeSize];
totalSpace = [fileSystemSizeInBytes unsignedLongLongValue];
totalFreeSpace = [freeFileSystemSizeInBytes unsignedLongLongValue];
NSLog(@"Memory Capacity of %llu MiB with %llu MiB Free memory available.", ((totalSpace/1024ll)/1024ll), ((totalFreeSpace/1024ll)/1024ll));
} else {
NSLog(@"Error Obtaining System Memory Info: Domain = %@, Code = %d", [error domain], [error code]);
}
return totalFreeSpace;
}
मुख्य अंतर यह है कि आप NSSearchPathForDirectioriesInDomains का उपयोग करना चाहिए, अन्यथा मैं सिम्युलेटर पर सही मान रही थी , लेकिन डिवाइस '/' फ़ोल्डर संदर्भ पर मुझे 190 एमबी की तरह कुछ देता है जो सही नहीं था। यह करने में महत्वपूर्ण NSFileSystemFreeSize के साथ एक dict वापस नहीं करता है [: त्रुटि NSFileManager attributesOfFileSystemForPath] -
तेजी के माध्यम से आप इस समारोह
func getFreeSpace() -> CGFloat {
do {
let fileAttributes = try NSFileManager.defaultManager().attributesOfFileSystemForPath("/")
if let size = fileAttributes[NSFileSystemFreeSize] as? CGFloat {
return size
}
} catch { }
return 0
}
एक ही सामग्री के साथ कई उत्तरों पोस्ट न करें। आपने इसे पहले ही यहां पोस्ट किया है http://stackoverflow.com/a/36654477/1743880। एक अच्छा जवाब पोस्ट करें और दूसरे को डुप्लिकेट के रूप में फ़्लैग करें। – Tunaki
- 1. मेमोरी-मैप की गई फ़ाइल कितनी बड़ी हो सकती है?
- 2. डिस्क ड्राइव में डिस्क है
- 3. लिनक्स खोल पर किसी दिए गए पथ के लिए खाली डिस्क स्थान कैसे खोजें?
- 4. कितनी ऑब्जेक्ट्स बनाई गई हैं
- 5. MongoDb: अत्यधिक डिस्क स्थान से बचें
- 6. कोको: जब आप NSTableView
- 7. आप संस्करण नियंत्रण कितनी दूर लेते हैं?
- 8. विफलता SQL क्वेरी अपर्याप्त डिस्क स्थान
- 9. मुफ्त डिस्क स्थान की गणना कैसे करें?
- 10. क्या कोई स्थिरता है कि कोको में जीबी कितनी बड़ी है?
- 11. मॉलोक -> कितनी मेमोरी आवंटित की गई है?
- 12. छोड़ी गई परियोजनाओं के लिए कोई भी ओपन सोर्स होस्टिंग साइट?
- 13. आमतौर पर डिस्क की तुलना में स्मृति कितनी तेजी से होती है?
- 14. डिस्क
- 15. आप कोड कवरेज कितनी दूर लेते हैं?
- 16. किसी सर्वर पर डिस्क स्थान कैसे प्राप्त करें?
- 17. अमेज़ॅन पर ईसी 2 उदाहरण और मुझे "डिस्क पर कोई स्थान नहीं छोड़ा गया" के साथ बधाई दी गई है
- 18. LINQ कितनी तेज़ है?
- 19. वास्तव में सरल वेबसाइट - आप कितनी बुनियादी जा सकते हैं?
- 20. कोको
- 21. डिस्क
- 22. Postgresql डेटाबेस द्वारा उपयोग की जाने वाली कुल डिस्क स्थान
- 23. होस्टिंग हमारे MongoDB उदाहरण डिस्क स्थान से बाहर भाग MongoDB
- 24. विंडोज़ में एक प्रक्रिया दुर्घटनाग्रस्त हो गई .. क्रैश डंप स्थान
- 25. कोको:
- 26. वीएमवेयर डिस्क
- 27. डिस्क
- 28. डिस्क
- 29. डिस्क
- 30. डिस्क
का उपयोग करके मुक्त स्थान मिल सकता है। – zekel
ओह, आप सही थे। ऐसा लगता है कि मैंने वर्ग पर कोशिश की, उदाहरण नहीं। – zekel
नमस्ते, क्या होगा यदि पथ में उप-फ़ोल्डरों में से कोई एक अन्य फाइल सिस्टम को इंगित करता है, तो क्या NSFileManager गुणों को पुनर्प्राप्त करते समय इसे अनदेखा करना जानता है? – Zohar81