## File Exchange Pick of the WeekOur best user submissions

Jiro's pick this week is GetFullPath by Jan.

Jan is no stranger to good File Exchange entries. I've already highlighted two of his entries before (cryptAES and AutoWarnDlg). This one is a very handy utility for those working with files in different directories and needing an easy way to get absolute path names from relative or partial names. I'm a little embarrassed to say that I didn't see the pain I was having until I came across Jan's entry. In various MATLAB programs, I have used code that looked like this. I'm using fileparts to go up directories and fullfile to construct paths.

curDir   = pwd
mainDir  = fileparts(fileparts(curDir));            % go up 2 directories

% Check that the file exists
assert(exist(imgFile1, 'file') == 2, 'File does not exist')
curDir =
C:\MyStuff\Work\NoCopy\Blog\POTW\FullPath
imgFile1 =


I can use relative path along with fullfile, but the result looks kind of messy:

imgFile2 = fullfile(curDir, '..', '..', 'Internal', 'GoogleMap.png')

% Check that the file exists
assert(exist(imgFile2, 'file') == 2, 'File does not exist');
imgFile2 =


With Jan's GetFullPath, I get exactly what I want, with a simple, familiar syntax:

imgFile3 = GetFullPath('..\..\Internal\GoogleMap.png')

% Check that the file exists
assert(exist(imgFile3, 'file') == 2, 'File does not exist');
imgFile3 =


If you're familiar with some of Jan's entries, he has included a fast C-Mex version of the code (Windows-only), but for people like me who breathe MATLAB, the .m version is enough to evoke a smile. He also includes a unit test suite for his function, which is always a good practice.

Published with MATLAB® 7.11

|