我有一个Matlab GUI(我编译它),为了加载文件我按下使用这一行的按钮
[file, folder] = uigetfile({'*.jpg;*.gif;*.bmp','All Image Files'},' Select image');
如果再次按下该按钮,则会打开安装软件的文件夹。如何更改它将记住并打开我使用的最后一个文件夹?
感谢。
答案 0 :(得分:2)
根据uigetfile
的文档,您可以指定可选的第三个输入参数DefaultName
:
[FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle,DefaultName)
显示一个对话框 其中DefaultName
指定的文件名出现在文件中 名称字段。DefaultName
也可以是路径或路径/文件名。在 在这种情况下,uigetfile
打开指定文件夹中的对话框 路径。您可以在.
中使用..
,\
,/
或DefaultName
论点。要指定文件夹名称,请输入最后一个字符DefaultName
\
或/
uigetfile
。如果指定的路径不存在,function testgui h.f = figure('MenuBar', 'none', 'NumberTitle', 'off', 'ToolBar', 'none'); h.b = uicontrol('Parent', h.f, 'Style', 'pushbutton', 'Units', 'Normalized', ... 'Position', [0.1 0.3 0.8 0.4], 'String', 'Pick a file'); h.l = uicontrol('Parent', h.f, 'Style', 'text', 'Units', 'Normalized', ... 'Position', [0.1 0.1 0.8 0.1], 'String', ''); setappdata(h.f, 'lastfolder', ''); h.l.String = sprintf('Last Directory: %s', ''); h.b.Callback = @(o, e) abutton(h); end function abutton(h) lastfolder = getappdata(h.f, 'lastfolder'); [file, folder] = uigetfile({'*.jpg;*.gif;*.bmp','All Image Files'},' Select image', lastfolder); if folder ~= 0 setappdata(h.f, 'lastfolder', folder); h.l.String = sprintf('Last Directory: %s', folder); end end
打开当前文件夹中的对话框。
您可以将最后打开的文件夹存储到GUI,并在触发按钮回调时访问它。
例如:
docker ps -a
请注意,当GUI关闭并重新打开时,此方法会重置为当前目录。
答案 1 :(得分:0)
folder
的{{1}}输出是已选择的路径。将其用作下次调用uigetfile
uigetfile
这是来自[file, folder] = uigetfile({'*.jpg;*.gif;*.bmp','All Image Files';},...
'Select Image', folder);
的示例,但它也适用于doc uiputfile
。