How to get drive name?
27 次查看(过去 30 天)
显示 更早的评论
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'?
0 个评论
采纳的回答
per isakson
2020-5-8
编辑:per isakson
2020-5-8
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
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 个评论
per isakson
2020-5-8
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
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 File Operations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!