IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

connaitre la taille des fichiers dans un dossier


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 323
    Par défaut connaitre la taille des fichiers dans un dossier
    Bonjour,

    j'arrive pas avoir la tailles des fichiers dans un dossier image car ca me donne que 2 Ko.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Function ConvertNewSize(ByVal FilePath As String) As String
            Dim ext As String() = {".jpeg", ".jpg", ".png", ".gif", ".bmp"}
            Dim info As New DirectoryInfo(FilePath)
            Dim files As FileInfo() = info.EnumerateFiles.Where(Function(f) ext.Contains(f.Extension.ToLower)).ToArray
            Return String.Format("{0}{1}", files.Length, " Ko")
        End Function
    Comment faire pour obtenir la taille des fichiers dans un dossier?
    Merci de votre réponse.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 323
    Par défaut
    j'ai essayer avec un nouveau code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Function FindFileImage(ByVal dossier As String) As Object
            If Directory.Exists(dossier) Then
                Dim liste As New List(Of String)
                Dim extensions() As String = {"*.jpg", "*.jpeg", "*.png", "*.gif", "*.bmp"}
                For Each extension As String In extensions
                    For Each fichier As String In My.Computer.FileSystem.GetFiles(dossier, FileIO.SearchOption.SearchTopLevelOnly, extension)
                        liste.Add(Path.GetFileName(fichier))
                    Next
                Next
                Return liste '=> ca me donne (collection)
            Else
                Return New List(Of String)() From {String.Empty}
            End If
        End Function
    en sortie ça me donne (collection). comment faire pour afficher tous les fichiers dans un dossier?

  3. #3
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,


    Tu dois l' adapter pour ne prendre en compte que les fichiers qui ont l'extension qui t'intéresse, mais le code suivant qui calcule la somme des tailles des fichiers d'un dossier donné ("X:\MonDossier" dans cet exemple) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Private Sub Test()
            Dim MesFichiers() As String = Directory.GetFiles("X:\MonDossier")
            Dim UnFichier As String
            Dim Taille As Long = 0
            For Each UnFichier In MesFichiers
                Taille += FileLen(UnFichier)
            Next
        End Sub
    Cdt

  4. #4
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    S'il s'agit simplement de récupérer la taille du dossier j'utiliserais la méthode .EnumerateFiles un poil plus performante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            Dim dirLength = Directory.EnumerateFiles(DirPath, "*", SearchOption.TopDirectoryOnly).Where(Function(fext)
                                                                                                       Return Path.GetExtension(fext) = ".jpeg" OrElse
                                                                                                              Path.GetExtension(fext) = ".jpg" OrElse
                                                                                                              Path.GetExtension(fext) = ".png" OrElse
                                                                                                              Path.GetExtension(fext) = ".gif" OrElse
                                                                                                              Path.GetExtension(fext) = ".bmp"
                                                                                                   End Function).Sum(Function(f)
                                                                                                                         Return New FileInfo(f).Length
                                                                                                                     End Function)
    Je pousserais le vice un peu plus loin lorsqu'il s'agit de vérifier qu'un fichier image n'est pas simplement un fichier renommé avec une extension d'image :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
      Public Function CorrectImageFormat(filepath$) As Boolean
                Try
                    Dim id As Guid = GetGuidID(filepath)
                    If id = ImageFormat.Png.Guid OrElse id = ImageFormat.Bmp.Guid OrElse _
                        id = ImageFormat.Gif.Guid OrElse id = ImageFormat.Exif.Guid OrElse _
                        id = ImageFormat.Jpeg.Guid OrElse id = ImageFormat.MemoryBmp.Guid OrElse _
                        id = ImageFormat.Tiff.Guid Then
                        Return True
                    End If
                Catch
                    Return False
                End Try
                Return False
            End Function
     
      Private Function GetGuidID(filepath$) As Guid
                Dim imagedata As Byte() = File.ReadAllBytes(filepath)
                Dim id As Guid
                Using ms As New MemoryStream(imagedata)
                    Using img As Image = Image.FromStream(ms)
                        id = img.RawFormat.Guid
                    End Using
                End Using
                Return id
            End Function
    Ce n'est qu'à titre info car la réponse de Phil fait largement le job.

    Bon codage++

  5. #5
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 323
    Par défaut
    merci de ta réponse wallace1,

    j'ai trouver la solution a mon problème. cette calculer la taille de sortie du compression image avec un booléen de sortie compresser ou pas.
    voici ce que ça donne :
    Nom : Capture.PNG
Affichages : 424
Taille : 22,8 Ko

    Cordialement,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. accéder à des fichiers dans un dossier sans connaitre leurs noms
    Par mkachekh dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 29/03/2010, 13h27
  2. enregistrer des fichiers dans un dossier
    Par Alexandra0907 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/06/2008, 17h52
  3. [INNO] Installer des fichiers dans le dossier système
    Par Zl@b][roth dans le forum Autres éditeurs
    Réponses: 0
    Dernier message: 20/03/2008, 10h17
  4. Réponses: 2
    Dernier message: 05/01/2007, 12h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo