This repository has been archived by the owner on Aug 15, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 13
/
psom_exist.m
59 lines (57 loc) · 2.32 KB
/
psom_exist.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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
function flag_exist = psom_exist(file_name,flag_test_dir)
% A fast version of "exist" specific of files with full path names.
%
% SYNTAX:
% FLAG_EXIST = PSOM_EXIST(FILE_NAME,FLAG_TEST_DIR)
%
% FILE_NAME (string) a file name with full path
% FLAG_TEST_DIR (boolean, default true) if the flag is true, also test for folders.
% FLAG_EXIST (integer) 1 if FILE_NAME is a file, 7 if it is a folder, 0 otherwise.
%
% This is essentially the same as exist(FILE_NAME), restricted to files and
% directories, but it is much faster when the search path is large. It will
% only work for file names/folder names with full path.
%
% Copyright (c) Pierre Bellec, Centre de recherche de l'institut de
% geriatrie de Montreal, Departement d'informatique et recherche
% operationnelle, Universite de Montreal, 2010-2015.
% Maintainer : [email protected]
% See licensing information in the code.
% Keywords : files
% Permission is hereby granted, free of charge, to any person obtaining a copy
% of this software and associated documentation files (the "Software"), to deal
% in the Software without restriction, including without limitation the rights
% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
% copies of the Software, and to permit persons to whom the Software is
% furnished to do so, subject to the following conditions:
%
% The above copyright notice and this permission notice shall be included in
% all copies or substantial portions of the Software.
%
% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
% THE SOFTWARE.
if nargin < 2
flag_test_dir = true;
end
if size(file_name,1)>1
flag_exist = true;
for num_f = 1:size(file_name,1)
flag_exist = flag_exist && psom_exist(deblank(file_name(num_f,:)));
end
return
end
hf = fopen(file_name,'r');
if hf == -1
flag_exist = false;
else
fclose(hf);
flag_exist = true;
end
if ~flag_exist&&flag_test_dir
flag_exist = exist(file_name,'dir');
end