2017-02-03 2 views
-1

Was ist Windows-Konvertierung für die Konvertierung von Bytes in MB?
Die berechnete Größe Mein Ordner ist (1568653060 Bytes)Was ist Windows-Konvertierung für Bytes zu mb?

// 1. 
// Get array of all file names. 
string[] a = Directory.GetFiles(path, "*.*"); 

// 2. 
// Calculate total bytes of all files in a loop. 
long b = 0; 
foreach (string name in a) 
{ 
// 3. 
// Use FileInfo to get length of each file. 
    FileInfo info = new FileInfo(name); 
    b += info.Length; 
} 

//b = 1568653060 

//However, googles conversion...convert 1568653060 bytes to mb 
//returns 
//1568653060 b = 1568.65306 mb 

aber meine Berechnungen nach

// Return total size in MB int 
float mbValue = (b/1024f)/1024f; 
//mbValue = 1495.98413 
//should return 1496 mb 

aber Windows kehrt ....
Größe: 1,45 GB (1568653060 bytes)
Größe auf der Festplatte: 1,46 GB (1.568.686.080 Bytes)
// Umwandlung in MBs gibt mir 1460 MB ....

Woher kommen die anderen 36Mb?
Ich brauche es nur um genau zu sein ... an welche Methode sollte ich mich halten?
Grenzen für das Hochladen von Benutzerdateien festlegen

+0

Wenn Sie sagen * "Windows Returns ..." * Ich gehe davon aus, dass Sie * File Explorer * gemeint haben. In diesem Fall: [Wie berechnet der Explorer "Größe auf der Festplatte"?] (Https://blogs.msdn.microsoft.com/oldnewthing/20160427-00/?p=93365), [Wie berechnet der Explorer die Informationen zur Ordnergröße? im Ordner Tooltip?] (https://blogs.msdn.microsoft.com/oldnewthing/20120503-00/?p=7713), [Warum kann der Explorer nicht entscheiden, wie groß eine Datei ist?] (https: // blogs.msdn.microsoft.com/oldnewthing/20110315-00/?p=11223). – IInspectable

+0

Für mich 1.568.653.060/1024/1024 = 1495.98 - so abgerundet google hat 1000 nicht 1024 verwendet. – BugFinder

+1

Es war einmal jemand, der dachte, es sei notwendig, zwischen Mega (1.000.000) und Mebi (2^20) Bytes. Dies hat dazu geführt, dass einige Leute glauben, dass es sinnvoll ist, 1.000 als einen Faktor zu verwenden, um Bytes anstelle der gut etablierten 1024 (2^10) zu bezeichnen. Bleiben Sie bei 1024, wenn Sie nicht wollen, dass Leute Sie auslachen. –

Antwort

1

Windows Explorer zeigt Megabyte an, berechnet aber mebibytes. Somit ist die Division durch 1024 für jede nachfolgende Einheit korrekt.

Die Größe auf der Festplatte enthält Speicherplatz, der aus technischen Gründen Teil der Dateien sein muss, z. B. die letzte Seite, wenn sie nicht vollständig voll ist. Es enthält auch andere Streams als nur $DATA, wenn sie existieren. Es kann sogar 0 Bytes für eine Datei anzeigen, die vollständig in ihren Verzeichniseintrag passt. In der Regel wird sich diese Nummer jedoch immer von der Größe des Dateiinhalts unterscheiden.

Verwandte Themen