如何从Matlab打开默认文件管理器中的目录?

时间:2013-05-29 08:29:06

标签: matlab user-interface directory

我正在开发一个必须在不同操作系统上工作的GUI:Windows,Unix,Mac ...我想知道如何通过按下按钮来打开目录?

是否有任何常规命令在默认文件管理器中打开它? (适用于Mac的Finder,适用于Windows的Explorer,适用于GNOME的Nautilus for Unix等)。

我不是只想显示所选文件夹的信息(ls,cd& dir不帮我)。

提前谢谢你,

本杰明。

2 个答案:

答案 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支持,您必须编写更多精细的系统命令来找出默认的文件管理器。

但我会把它留给你:)