-
Notifications
You must be signed in to change notification settings - Fork 0
/
stripextension.m
28 lines (25 loc) · 779 Bytes
/
stripextension.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
% strip file extension from file name, if any. Surely matlab does this already?
% Nope, fileparts is not robust to paths where directory names (e.g. user home
% directories) contain full stops. This function is.
%
% fn = stripextension(fn)
function fn = stripextension(fn)
if iscell(fn)
fn = cellfun(@stripextension,fn,'uniformoutput',0);
return
end
% filter out anything before the last file separator for the purposes of the
% test
lastsep = find(fn == filesep,1,'last');
if isempty(lastsep)
lastsep = 0;
end
% take the first full stop of the remainder (to catch double extensions a la
% tar.gz).
extind = find(fn(lastsep+1:end) == '.',1,'first');
if isempty(extind)
% nothing to do here
return
end
% cut off the extension
fn = fn(1:(lastsep+extind-1));