Les Snippets

Connexion

Récupérer la lettre des lecteurs.

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 26/08/2007 20:20:42 et initié par deck_bsd [Liste]
Date de mise à jour : 09/11/2007 14:45:25
Vue : 4077
Catégorie(s) : API
Langages dispo pour ce code :
- C
- VB6, VBA
- VB 2005
- Java



Langage : C
Date ajout : 26/08/2007
Posté par deck_bsd [Liste]
DateMAJ : 27/08/2007
BOOL __stdcall GetLetterOfAllDisk(CHAR cLetter[],BYTE bySize,BYTE * byRequired){
     DWORD dwBitsMask;
     CHAR cDrv = 'A';
     
     if(byRequired == NULL)return FALSE;
     *byRequired = 0;
     if(!(dwBitsMask = GetLogicalDrives())) return FALSE;
     do{           
         if(dwBitsMask & 1)
         {
            cLetter[*byRequired] = cDrv;
            (*byRequired)++;
            if(*byRequired > (bySize-1))break;
         }
         cDrv++;
     }while(dwBitsMask >>= 1);
     
     while(dwBitsMask >>= 1)
     {           
         if(dwBitsMask & 1)
         (*byRequired)++;
     }
     if(*byRequired > bySize)return FALSE;
     else return TRUE;
}
Version 2, plus légère mais sans controle, appelant responsable de passer un buffer de 26 octets mini.
Retourne le nombre de volumes inscrits.
DWORD __stdcall bnLettresVolumes(BYTE *pvols26)
{
  DWORD dwBitsMask, n = 0;
  BYTE v = 'A';
  if(!(dwBitsMask = GetLogicalDrives())) return 0;
  do {
    if(dwBitsMask & 1) pvols26[n++] = v;
    v++;
  } while(dwBitsMask >>= 1);
  return n;
}
Remarque :
Cette petite fonction permet de récupérer la lettre de chaque lecteur dans un tableau de CHAR. Si le tableau est trop petit pour acceuilir toutes les lettres, la taille requise pour celui ci est donnée par la variable byRequired passée en paramètre et la fonction renvoie FALSE.

Code API win32 donc pas oublier #include  :D
Langage : VB6 , VBA
Date ajout : 09/11/2007
Posté par jrivet [Liste]
DateMAJ : 09/11/2007
Option Explicit

Private Sub Form_Load()
Dim Result() As String
Dim i As Integer
   'EXEMPLE d'appel
   Result = GetLetterOfAllDisk()
   For i = LBound(Result) To UBound(Result)
       MsgBox (Result(i))
   Next
End Sub 
Public Function GetLetterOfAllDisk() As String() Dim Fso As Object Dim Dr As Object Dim i As Integer Dim Result() As String   Set Fso = CreateObject("Scripting.FileSystemObject")   ReDim Result(Fso.Drives.Count - 1)   i = 0   'Pour chaque lecteur   For Each Dr In Fso.Drives        'On récupère sa lettre pour la mettre        'dans le tableau de résultats        Result(i) = Dr.DriveLetter        i = i + 1   Next   'destruction des objets   Set Dr = Nothing   Set Fso = Nothing   GetLetterOfAllDisk = Result End Function
Remarque :
N'ayant pas de moyen de tester le code de  deck_bsd  j'espère que le code proposé est à peu près correct et respecte l'idée.
Langage : VB 2005
Date ajout : 09/11/2007
Posté par jrivet [Liste]
DateMAJ : 09/11/2007

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
   For Each Str As String In GetLetterOfAllDisk()
       MessageBox.Show (Str)
   Next
End Sub 
Public Function GetLetterOfAllDisk() As String()    'On dimensione le tableau de retourne    Dim result(My.Computer.FileSystem.Drives.Count - 1) As String    Dim i As Integer = 0    'Pour chaque Lecteur on stock le nom dans    'le tableaux de resultats    For Each Dr As System.IO.DriveInfo In My.Computer.FileSystem.Drives        result(i) = Dr.Name        i += 1    Next    Return result End Function
Remarque :
Et voici la version .NET 2005
Langage : Java
Date ajout : 10/11/2007
Posté par Ombitious_Developper [Liste]
import java.io.File;
/**
  * Lister les lecteurs logiques du système.
  * 
  * @return String[] tableau de chaînes de caractères contenant tous les noms
  *                  des lecteurs logiques du système.
  */
public static String[] getRoots() {
    File[] roots = File.listRoots();
    String[] names = new String[roots.length];
    for (int i = 0; i < roots.length; ++i) 
        names[i] = roots[i].getName();
    return names;
}


Snippets en rapport avec : Lettre, Api, Drive, Lecteur, Logicaldrive



Codes sources en rapport avec : Lettre, Api, Drive, Lecteur, Logicaldrive

{C# / C#.NET} USB DETECTOR
C'est un tout petit code qui montre comment être notifié lorsqu'un périphérique USB est connecté (ou...

{Visual Basic, VB6, VB.NET, VB 2005} DRIVEVIEW ==> ARBORESCENCE AFFICHANT LES LECTEURS LOGIQUES ET PHYSIQUES
Salut, ce code (UserControl) est basé sur un treeview, il affiche les lecteurs logiques et physiques...

{JAVA / J2EE} LECTEUR VIDEO UTILISANT L'API JMF
J'ai utilise un code que j'ai trouve sur ce site et je l'ai modifie. J'ai rajoute plusieurs boutons ...

{Visual Basic, VB6, VB.NET, VB 2005} COMMON DIALOG ET VOISINAGE RÉSEAU
Ce code permet l'ouverture des boîtes de connexion et de fermeture d'un lecteur réseau ...

{Visual Basic, VB6, VB.NET, VB 2005} LOCALISER UN LECTEUR CD-ROM
Comment trouver la lettre du lecteur CD-ROM ? Faites un Formulaire avec une DriveListBox ( mettez...

{C / C++ / C++.NET} LECTEUR MP3 (UPDATED)
Lecteur MP3 Doc Vue avec quelques modification fait pour un travail de cégep Permet de lire des mp3...

{C / C++ / C++.NET} HMEDIAV2 LECTEUR (WIN32)
C'est un Lecteur Audio-Video qui utilise l'API "vfw" pour lire et controler le video et l'API FM...

{Flash} LECTEUR POUR WEBRADIO
Lecteur pour flux Shoutcast (webradio) n'utilise pas de script php ce qui fais que les ressources co...

{C / C++ / C++.NET} XVID DIVX .AVI JOUEUR
MS c/c++ joue presque tous les formats videos a condition d avoir les codec installer! ...

{Visual Basic, VB6, VB.NET, VB 2005} LECTEUR DE MUSIQUE ET LECTEUR AUDIO
Lecteur audio extra lite. Je pense que j'ai réussi a corriger tous les bugs. J'attend vos commentair...