123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- function V = spm_check_filename(V)
- % Checks paths are valid and tries to restore path names
- % FORMAT V = spm_check_filename(V)
- %
- % V - struct array of file handles
- %__________________________________________________________________________
- % Copyright (C) 2008 Wellcome Trust Centre for Neuroimaging
- % Karl Friston
- % $Id: spm_check_filename.m 3934 2010-06-17 14:58:25Z guillaume $
- if isdeployed, return; end
- % check filenames
- %--------------------------------------------------------------------------
- for i = 1:length(V)
- % see if file exists
- %----------------------------------------------------------------------
- if ~spm_existfile(V(i).fname)
- % try current directory
- %------------------------------------------------------------------
- [p,n,e] = fileparts(V(i).fname);
- fname = which([n,e]);
- if ~isempty(fname)
- V(i).fname = fname;
- else
- % try parent directory
- %--------------------------------------------------------------
- cwd = pwd;
- cd('..')
- fname = which([n,e]);
- if ~isempty(fname)
- V(i).fname = fname;
- else
- % try children of parent
- %----------------------------------------------------------
- V = spm_which_filename(V);
- cd(cwd)
- return
- end
- cd(cwd)
- end
- end
- end
- %==========================================================================
- function V = spm_which_filename(V)
- % get children directories of parent
- %--------------------------------------------------------------------------
- cwd = pwd;
- cd('..')
- gwd = genpath(pwd);
- addpath(gwd);
- % cycle through handles
- %--------------------------------------------------------------------------
- for i = 1:length(V)
- try
- % get relative path (directory and filename) and find in children
- %------------------------------------------------------------------
- j = strfind(V(i).fname,filesep);
- fname = which(fname(j(end - 1):end));
- if ~isempty(fname)
- V(i).fname = fname;
- end
- end
- end
- % reset paths
- %--------------------------------------------------------------------------
- rmpath(gwd);
- cd(cwd);
|