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

如何从Matlab中打开默认文件管理器中的目录?,matlab,user-interface,directory,Matlab,User Interface,Directory,我正在开发一个GUI,它必须在不同的操作系统上工作:Windows、Unix、Mac…我想知道如何通过按下按钮打开目录 是否有在默认文件管理器中打开它的常规命令?(适用于Mac的Finder、适用于Windows的Explorer、适用于带GNOME的Unix的Nautilus等) 我不想仅仅显示所选文件夹的信息(ls、cd和dir对我没有帮助) 提前谢谢大家, Benjamin.用于打开一个对话框来选择文件夹如果您坚持要打开实际的文件管理器(而不是一个可从Matlab访问的跨平台Java对话框

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

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

我不想仅仅显示所选文件夹的信息(ls、cd和dir对我没有帮助)

提前谢谢大家,


Benjamin.

用于打开一个对话框来选择文件夹

如果您坚持要打开实际的文件管理器(而不是一个可从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发行版最接近默认文件管理器的是将目录传递给
xxxopen
命令。这捕获了许多Linux用户,但肯定不是所有用户。为了更好地支持Linux,您必须编写更多复杂的系统命令来查找默认的文件管理器


但是我会让你决定:)

谢谢你,罗迪,这是我在问你之前一直在考虑的解决方案。如果没有这样的功能,我将创建我的。