Effacer les filtres
Effacer les filtres

How to get drive name?

17 vues (au cours des 30 derniers jours)
Ethan Goldstein
Ethan Goldstein le 8 Mai 2020
I am trying to get the drive name, not just the drive letter. For example, I have my 'C' drive and it is called 'OSDisk'. Given I know the drive I want to find the name of ('C'), what function should I call to get the name 'OSDisk'?

Réponse acceptée

per isakson
per isakson le 8 Mai 2020
Modifié(e) : per isakson le 8 Mai 2020
On Windows this function works with my local drives
>> DriveName( 'C' )
ans =
'OSDisk'
>> DriveName( 'D' )
ans =
'DATA'
>>
where
function drive_name = DriveName( drive_letter )
cmd_str = sprintf( 'dir %s:\\zzzzzz', drive_letter );
[~,msg] = system( cmd_str );
cac = strsplit( msg, '\n' );
has = contains( cac, 'Volume in drive');
drive_name = regexp( cac{has}, '(?<= is ).+$', 'match', 'once' );
end
I'm sure there are more robust solutions, see e.g. GetVolumeInformationA function
A bit better
function drive_name = DriveName( drive_letter )
cmd_str = sprintf( 'vol %s:', drive_letter );
[~,msg] = system( cmd_str );
cac = strsplit( msg, '\n' );
drive_name = regexp( cac{1}, '(?<= is ).+$', 'match', 'once' );
end
  3 commentaires
per isakson
per isakson le 8 Mai 2020
This is the most universal I can think of
function drive_name = DriveName( drive_letter )
if ismac
% Code to run on Mac platform
elseif isunix
% Code to run on Linux platform
elseif ispc
% Code to run on Windows platform
else
disp('Platform not supported')
end
end
Ethan Goldstein
Ethan Goldstein le 8 Mai 2020
Thank You!

Connectez-vous pour commenter.

Plus de réponses (1)

Eivind Hennestad
Eivind Hennestad le 25 Nov 2022
Modifié(e) : Eivind Hennestad le 25 Nov 2022
An alternative is to use listPhysicalDrives from file exchange

Catégories

En savoir plus sur Search Path dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by