Vote des utilisateurs
0
0
Détails
Licence : BSD
Mise en ligne le 4 juin 2014
Plate-forme :
Windows
Langue : Français
Référencé dans
Navigation
Identification du type de lecteur (amovible, fixe, CD-ROM...)
Identification du type de lecteur (amovible, fixe, CD-ROM...)
Voici un code MATLAB permettant d'identifier le type d'un lecteur sous Windows.
Le code utilise l'API Windows via un fichier C-MEX
Le fichier source C-MEX ainsi que les versions compilées 32 et 64 bits sont fournis.
%GETDRIVETYPE Disk drive type
% DT = GETDRIVETYPE(S) determines whether the disk drives contained in S
% are removable, fixed, CD-ROM, RAM disk, or network drives. S is a
% character array or a cell array of strings containing standard drive
% letters as A:\, B:\, C:\, D:\ ... For each entry of S, DT is one of :
%
% 1 : 'Unknown'
% 2 : 'Invalid root path'
% 3 : 'Removable media'
% 4 : 'Fixed media'
% 5 : 'Remote drive'
% 6 : 'CD-ROM drive'
% 7 : 'RAM disk'
%
% Exemples :
%
% DT = getdrivetype('C:\')
%
% DT =
%
% 4
%
% DT = getdrivetype('F:\')
%
% DT =
%
% 6
%
% See Win32 API reference for more informations :
% http://msdn.microsoft.com/en-us/library/aa364939%28VS.85%29.aspx
%
% GETDRIVETYPE works only on PC (Windows).
Le code utilise l'API Windows via un fichier C-MEX
Le fichier source C-MEX ainsi que les versions compilées 32 et 64 bits sont fournis.
%GETDRIVETYPE Disk drive type
% DT = GETDRIVETYPE(S) determines whether the disk drives contained in S
% are removable, fixed, CD-ROM, RAM disk, or network drives. S is a
% character array or a cell array of strings containing standard drive
% letters as A:\, B:\, C:\, D:\ ... For each entry of S, DT is one of :
%
% 1 : 'Unknown'
% 2 : 'Invalid root path'
% 3 : 'Removable media'
% 4 : 'Fixed media'
% 5 : 'Remote drive'
% 6 : 'CD-ROM drive'
% 7 : 'RAM disk'
%
% Exemples :
%
% DT = getdrivetype('C:\')
%
% DT =
%
% 4
%
% DT = getdrivetype('F:\')
%
% DT =
%
% 6
%
% See Win32 API reference for more informations :
% http://msdn.microsoft.com/en-us/library/aa364939%28VS.85%29.aspx
%
% GETDRIVETYPE works only on PC (Windows).
Ce code fonctionne bien avec la contribution : [Windows] Liste des lecteurs disponibles (amovible, fixe, CD-ROM...)
Voici un exemple sur mon ordinateur portable avec deux partitions, un lecteur DVD et une clé USB connectée :
renvoie :
Voici un exemple sur mon ordinateur portable avec deux partitions, un lecteur DVD et une clé USB connectée :
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | D = getlogicaldrives; typs = {'Unknown' 'Invalid root path' 'Removable media' 'Fixed media' ... 'Remote drive' 'CD-ROM drive' 'RAM disk'}; for n = 1:numel(D) t = getdrivetype(D{n}); fprintf('Le lecteur %s est de type : %s\n',D{n},typs{t}) end |
Code : | Sélectionner tout |
1 2 3 4 | Le lecteur C:\ est de type : Fixed media Le lecteur D:\ est de type : Fixed media Le lecteur E:\ est de type : CD-ROM drive Le lecteur F:\ est de type : Removable media |
Une autre fonction dérivée qui teste si un lecteur est un lecteur CD/DVD :
En reprenant l'exemple précédent :
Code : | Sélectionner tout |
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 27 28 29 30 31 32 33 34 35 36 37 38 | function result = iscdrom(S) %ISCDROM True for CD-ROM drive letter % ISCDROM(S) returns 1 if the drive with letter S is a CD-ROM drive. S is a % character array or a cell array of strings containing standard drive % letters as A:\, B:\, C:\, D:\ ... % % Exemples : % % iscdrom('F:\') % % ans = % % 1 % % iscdrom({'A:\' 'C:\' 'F:\'}) % % ans = % % 0 0 1 % % ISCDROM works only on PC (Windows). % % See also findcdromdrive, getdrivetype, getlogicaldrives. % % Author: Jerome Briot (MATLAB R2009a) % http://www.developpez.net/forums/member.php?u=125006 % http://www.mathworks.com/matlabcentral/fileexchange/authors/21984 % Contact: dutmatlab#at#yahoo#dot#fr % Revision: 1.0 (08-Mar-2011) % Comments: % if ~ispc error('ISCDROM works only on PC (Windows)'); end result = getdrivetype(S) == 6; |
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | >> iscdrom('E:\') ans = 1 >> iscdrom('F:\') ans = 0 >> D = getlogicaldrives D = 'C:\' 'D:\' 'E:\' 'F:\' >> iscdrom(D) ans = 0 0 1 0 |
Et l'inverse :
Toujours avec le même exemple :
Code : | Sélectionner tout |
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 27 28 29 30 31 32 33 34 | function L = findcdromdrive %FINDCDROMDRIVE CD-ROM drive letters. % L = FINDCDROMDRIVE returns the letters of the currently available CD-ROM % drives in the cell array of strings L. % % Exemples : % % L = findcdromdrive % % L = % % 'F:\' 'G:\' % % FINDCDROMDRIVE works only on PC (Windows). % % See also iscdrom. % % Author: Jerome Briot (MATLAB R2009a) % http://www.developpez.net/forums/member.php?u=125006 % http://www.mathworks.com/matlabcentral/fileexchange/authors/21984 % Contact: dutmatlab#at#yahoo#dot#fr % Revision: 1.0 (08-Mar-2011) % Comments: % if ~ispc error('FINDCDROMDRIVE works only on PC (Windows).'); end d = getlogicaldrives; idx = iscdrom(d); L = d(idx); |
Code : | Sélectionner tout |
1 2 3 4 5 | >> L = findcdromdrive L = 'E:\' |
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.