123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- function [varargout] = uifile(mode, varargin)
- if nargin < 1
- warning('Usage: uifile(''getfile'', ...)');
- return;
- end
- lastDirMat = fullfile(tempdir, '_matlabLastUsedDir.mat');
- useDir = pwd;
- if exist(lastDirMat, 'file')
-
- load('-mat', lastDirMat)
-
- if exist('lastDir', 'var') && exist(lastDir, 'dir')
-
- useDir = lastDir;
- end
- end
- savedPwd = pwd;
- cd(useDir);
- switch lower(mode)
- case 'get'
- [varargout{1} varargout{2} varargout{3}] = uigetfile(varargin{1:end});
- case 'put'
- [varargout{1} varargout{2} varargout{3}] = uiputfile(varargin{1:end});
- case 'getdir'
- [varargout{1}] = uigetdir('', varargin{1:end});
- end
- cd(savedPwd);
- if ~isequal(varargout{1}, 0)
- try
-
- switch lower(mode)
- case 'get'
- lastDir = varargout{2};
- case 'put'
- lastDir = varargout{2};
- case 'getdir'
- lastDir = varargout{1};
- end
- save(lastDirMat, 'lastDir');
- catch
-
-
- disp(['Warning: Could not save file ''', lastDirMat, '''']);
- end
- end
|