我正在开发一个必须在不同操作系统上工作的GUI:Windows,Unix,Mac ...我想知道如何通过按下按钮来打开目录?
是否有任何常规命令在默认文件管理器中打开它? (适用于Mac的Finder,适用于Windows的Explorer,适用于GNOME的Nautilus for Unix等)。
我不是只想显示所选文件夹的信息(ls,cd& dir不帮我)。
提前谢谢你,
本杰明。
答案 0 :(得分:2)
使用uigetdir
打开一个用于选择文件夹的对话框
答案 1 :(得分:1)
如果您坚持打开实际的文件管理器(而不是可从Matlab访问的跨平台Java对话框之一),您可以使用以下内容:
% Just as an example; current dir
myDir = '.';
% Windows PC
if ispc
C = evalc(['!explorer ' myDir]);
% Unix or derivative
elseif isunix
% Mac
if ismac
C = evalc(['!open ' myDir]);
% Linux
else
fMs = {...
'xdg-open' % most generic one
'gvfs-open' % successor of gnome-open
'gnome-open' % older gnome-based systems
'kde-open' % older KDE systems
};
C = '.';
ii = 1;
while ~isempty(C)
C = evalc(['!' fMs{ii} ' ' myDir]);
ii = ii +1;
end
end
else
error('Unrecognized operating system.');
end
if ~isempty(C)
error(['Error while opening directory in default file manager.\n',...
'The reported error was:\n%s'], C);
end
请注意,大多数Linux发行版与默认文件管理器最接近的是将目录传递给XXX-open
命令。这捕获了许多Linux用户,但肯定不是全部。为了获得更好的Linux支持,您必须编写更多精细的系统命令来找出默认的文件管理器。
但我会把它留给你:)