none
afficher les dossier de ma clé USB RRS feed

  • Question

  • bonjour,

    voici mes codes pour afficher ma clé USB dans listview1 :

    Private volume As String
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            For Each Drive In My.Computer.FileSystem.Drives
                Dim DriveInfo As String = Drive.Name
                If Drive.DriveType = DriveType.Removable Then
                    volume = ShowTotalFileSize(Drive.TotalSize)
                    ListView1.LargeImageList = ImageList1
                    Dim lv As New ListViewItem
                    lv = ListView1.Items.Add("USB", 0)
                    lv.SubItems.Add(DriveInfo)
                    lv.SubItems.Add(volume)
                End If
            Next

    exemple : M:/Music

    J'ai oublié de vous demander : comment afficher dans combobox1 le dossier de ma clé USB ? Merci

    lundi 7 avril 2014 08:24

Réponses

Toutes les réponses

  • Bonjour,

    Que voulez vous dire par "le dossier de ma clé USB" ?.

    Peut-être vous souhaitez à faire ceci :

    lv.SubItems.Add(DriveInfo + "\Music")
    

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    mardi 8 avril 2014 00:03
    Modérateur
  • Bonjour,

    Je ferais comme Gilles mais avec une vérification de l’existence ;)

    Imports System.IO
    Imports System
    
    
    Public Class Form1
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim volume As String
    
            For Each Drive In My.Computer.FileSystem.Drives
                If Drive.DriveType = DriveType.Removable Then
                    Dim DriveInfo As String = Drive.Name
                    volume = Format(Drive.TotalSize / (1024 ^ 3), "###,##Go")
                    ' ListView1.LargeImageList = ImageList1
                    Dim lv As New ListViewItem
                    lv = ListView1.Items.Add("USB", 0)
                    lv.SubItems.Add(DriveInfo)
                    lv.SubItems.Add(volume)
                    IIf(File.Exists(Path.Combine(DriveInfo, "Music".ToLower)), ComboBox1.Items.Add(DriveInfo & "Music"), ComboBox1.Items.Add(DriveInfo & "N'a pas de dossier Music"))
                End If
            Next
        End Sub
    End Class
    

    using System;
    using System.IO;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                DriveInfo[] alldrives = DriveInfo.GetDrives();
    
                double volume;
                foreach (DriveInfo drive in DriveInfo.GetDrives())
                {
                   // string driveinfo = drive.Name;
                    if (drive.DriveType == DriveType.Removable)
                    {
                        volume = drive.TotalSize / Math.Pow(1024, 3);
                        ListViewItem lv = new ListViewItem();
                        lv = listView1.Items.Add("USB", 0);
                        lv.SubItems.Add(drive.Name);
                        lv.SubItems.Add(Convert.ToString(volume.ToString("###.##") + "Go"));
                        object okOrNotok = Directory.Exists(Path.Combine(drive.Name, @"Music")) ? comboBox1.Items.Add(drive.Name + "Music") : comboBox1.Items.Add(drive.Name + "Na pas de dossier Music");
                    }
                }
            }
        }
    }


    Cordialement,

    mardi 8 avril 2014 13:01
    Auteur de réponse
  • bonjour,

    Merci Troxsa pour ta réponse.

    voici mes codes :

    For Each Drive In My.Computer.FileSystem.Drives
                Dim DriveInfo As String = Drive.Name
                If Drive.DriveType = DriveType.Removable Then
                    volume = ShowTotalFileSize(Drive.TotalSize)
                    ListView1.LargeImageList = ImageList1
                    Dim lv As New ListViewItem
                    lv = ListView1.Items.Add("USB", 0)
                    lv.SubItems.Add(DriveInfo)
                    lv.SubItems.Add(volume)
                End If
                ComboBox1.Text = "Music"
            Next
    voici en image :

    je voudrais seulement afficher dans combobox1 le dossier Music ou j'ai dossier ALBUM/COMPIL en cliquent sur Scan. Merci

    mercredi 9 avril 2014 08:11
  • Bonjour,

    La valeur texte et l'ajout dans la liste est deux choses differente.
    Il faut faut simplement le nom du dossier dans la combobox et la valeur par default dans ce cas là il faudra faire :

    Combobox1.Text = "Music"
    Combobox.Items.Add("Music")
    Il faudra faire une vérification de l'existance du dossier sur votre clef usb sinon n'importe quelle clef USB passera l'étape et dira qu'il y a un dossier Music ...
    Pour lister vos fichiers il faudra passer par un Directory.GetFiles(LeLecteurUSB\Music\, "*.mp3")

    Cordialement,

    mercredi 9 avril 2014 08:54
    Auteur de réponse
  • un dernière question : comment afficher tous les dossiers dans la ma clé dans combobox1.Merci
    mercredi 9 avril 2014 10:08
  • Pour afficher tous les dossiers Directory.GetDirectories(LeLecteurUSB\Music\, "*", SearchOption.AllDirectories)

    
    
    

    Cordialement,

    mercredi 9 avril 2014 11:15
    Auteur de réponse
  • bonjour,

    voici mon code :

    Dim folders() As String = Directory.GetDirectories(Drive.Name, "Music", SearchOption.AllDirectories)
                    For Each folder As String In folders
                        ComboBox1.Items.Add(folder)
                        ComboBox1.SelectedIndex = 0
                    Next
    pour l'instant, il m'affiche dans mon combobox1 = M:\Music

    je voudrais seulement afficher dans mon combobox1 = Music

    comment faire.Merci

    jeudi 10 avril 2014 08:22
  • Bonjour

    Veuillez utilizer :

     ComboBox1.Items.Add(folder.Replace (Drive.Name, "") )

    Bien cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    • Marqué comme réponse zorro591 jeudi 10 avril 2014 09:35
    jeudi 10 avril 2014 08:37
  • Bonjour,

    Ou comme ceci :

            For Each folder As String In folders
                Dim NameMusic = New DirectoryInfo(folder).Name
                ComboBox1.Items.Add(NameMusic)
                ComboBox1.SelectedIndex = 0
            Next



    Cordialement,

    jeudi 10 avril 2014 09:02
    Auteur de réponse
  • Merci Troxsa et aurel Bera,

    Voici mon projet :

    1)voici image :

    2)voici image :

    voici mes codes:

    Imports System.IO
    
    Public Class Form1
    
        Private volume As String
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            ListView1.Items.Clear()
            For Each Drive In My.Computer.FileSystem.Drives
                Dim DriveInfo As String = Drive.Name
                If Drive.DriveType = DriveType.Removable Then
                    volume = ShowTotalFileSize(Drive.TotalSize)
                    ListView1.LargeImageList = ImageList1
                    Dim lv As New ListViewItem
                    lv = ListView1.Items.Add("USB", 0)
                    lv.SubItems.Add(DriveInfo)
                    lv.SubItems.Add(volume)
                    Dim folders() As String = Directory.GetDirectories(Drive.Name, "Music", SearchOption.AllDirectories)
                    For Each folder As String In folders
                        ComboBox1.Items.Add(folder.Replace(Drive.Name, ""))
                        ComboBox1.SelectedIndex = 0
                        Dim fichiers() As String = Directory.GetFiles(Drive.Name, "*.mp3", SearchOption.AllDirectories)
                        For Each fichier As String In fichiers
                            ComboBox2.Items.Add(fichier.Replace(Drive.Name & "Music" & "\", ""))
                            ComboBox2.SelectedIndex = 0
                        Next
                    Next
                End If
            Next
            If ListView1.Items.Count < 1 Then
                Label2.ForeColor = Color.Red
                Label2.Text = "No Connecter"
            Else
                Label2.ForeColor = Color.Green
                Label2.Text = "Connecter"
            End If
            ToolStripStatusLabel1.Text = ListView1.Items.Count.ToString & " USB Trouvés ...."
        End Sub
        Function ShowTotalFileSize(ByVal bytes As Long) As String
            Dim stringToReturn As String = ""
            If bytes < 1024 Then
                stringToReturn = Format(bytes, "#,##0.0") & " Bytes"
            ElseIf bytes < (1024 * 1024) Then
                stringToReturn = Format((bytes / 1024), "#,###") & " KB"
            ElseIf bytes >= (1024 * 1024) And bytes < (1024 * 1024 * 1024) Then
                stringToReturn = Format((bytes / (1024 * 1024)), "#,###.0") & " MB"
            ElseIf bytes >= (1024 * 1024 * 1024) Then
                stringToReturn = Format((bytes / (1024 * 1024 * 1024)), "#,###.00") & " Go"
            End If
            Return stringToReturn
        End Function
    
        Private Sub ComboBox2_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged
            Button3.Enabled = True
        End Sub
    
        Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
            Me.Close()
        End Sub
    End Class
    A+

    jeudi 10 avril 2014 09:31