How to get drive name?

19 visualizaciones (últimos 30 días)
Ethan Goldstein
Ethan Goldstein el 8 de Mayo de 2020
Editada: Eivind Hennestad el 25 de Nov. de 2022
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'?

Respuesta aceptada

per isakson
per isakson el 8 de Mayo de 2020
Editada: per isakson el 8 de Mayo de 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 comentarios
per isakson
per isakson el 8 de Mayo de 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 el 8 de Mayo de 2020
Thank You!

Iniciar sesión para comentar.

Más respuestas (1)

Eivind Hennestad
Eivind Hennestad el 25 de Nov. de 2022
Editada: Eivind Hennestad el 25 de Nov. de 2022
An alternative is to use listPhysicalDrives from file exchange

Categorías

Más información sobre Search Path en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by