Azzera filtri
Azzera filtri

How to get drive name?

15 visualizzazioni (ultimi 30 giorni)
Ethan Goldstein
Ethan Goldstein il 8 Mag 2020
Modificato: Eivind Hennestad il 25 Nov 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'?

Risposta accettata

per isakson
per isakson il 8 Mag 2020
Modificato: per isakson il 8 Mag 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 Commenti
per isakson
per isakson il 8 Mag 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 il 8 Mag 2020
Thank You!

Accedi per commentare.

Più risposte (1)

Eivind Hennestad
Eivind Hennestad il 25 Nov 2022
Modificato: Eivind Hennestad il 25 Nov 2022
An alternative is to use listPhysicalDrives from file exchange

Categorie

Scopri di più su Search Path in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by