Feedback

VB - Größe einer Datei ermitteln

Veröffentlicht von am 30.12.2016
(0 Bewertungen)
Mit dieser einfachen Function lässt sich ganz einfach bestimmen, welche Größe eine Datei hat.

Man bekommt nicht wenn man z.B FileLen aufruft eine große Anzahl Bytes, mit der keiner was anfangen kann.
GFU-Schulungen  [Anzeige]

Visual Studio Team Foundation Server 2017/2015 (TFS) für Administratoren - Kompakt

Nach dieser Schulung beherrschen Sie die Grundlagen des TFS. Sie erledigen administrative Aufgaben schnell und sicher.

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

    Dim kb As Integer = 1024
    Dim mb As Integer = kb * 1024
    Dim gb As Integer = mb * 1024

 Private Function GetSizeType(ByVal size As Integer) As String
        If size < kb Then
            Dim newSize As Integer = size
            Return newSize & " Bytes".ToString()
        ElseIf size < mb Then
            Dim newSize As Integer = size / kb
            Return newSize & " KB".ToString()
        ElseIf size < gb Then
            Dim newSize As Integer = size / mb
            Return newSize & " MB".ToString()
        ElseIf size >= gb Then
            Dim newSize As Integer = size / gb
            Return newSize & " GB".ToString()
Else
      Return Nothing
        End If
    End Function

3 Kommentare zum Snippet

Koopakiller schrieb am 01.01.2017:
Ein paar Gedanken zum Snippet:
1. Ein Long entgegen zu nehmen wäre sinnvoller, da Integer auf lediglich <2GB (nach deiner Berechnung) beschränkt ist.
2. Ich hätte vermutlich auch noch TB eingebaut, schließlich sind Festplatten in der Größenordnung mittlerweile normal.
3. Das Return Nothing am Ende ist unnötig sofern du (wie ich es auch empfehlen würde) statt dem letzten ElseIf ein einfaches Else nimmst. Denn dort interessiert die Prüfung ja nicht mehr.
4. Wenn man unter 1024 Bytes übergibt kommt 0 heraus...was falsch ist
5. Wenn du SI Präfixe benutzt solltest du auch deren Umrechnungsfaktoren nutzen. Ansonsten eben IEC und 1024. Wann auch immer Microsoft das mal ordentlich macht...
6. Das ToString bringt nichts, da du es auf dem String aufrufst. Und der &-Operator ruft sowieso implizit für alles ToString auf wenn der 2. Operand ein String ist.
7. Man könnte den Algorithmus auch etwas generischer gestalten. Wie viel das bringt ist allerdings fraglich.
Martin Dauskardt schrieb am 04.01.2017:
Ich persönlich war mit diesem snippet ganz zufrieden:

https://dotnet-snippets.de/snippet/byte-groessenangaben-als-string-formatieren-kb-mb-gb/1304
Koopakiller schrieb am 04.01.2017:
@Martin
So etwas in der Art stellte ich mir vor :)
Nur 5. wird wohl ewig ein Problemchen sein...
 

Logge dich ein, um hier zu kommentieren!