File tree Expand file tree Collapse file tree 7 files changed +32
-23
lines changed Expand file tree Collapse file tree 7 files changed +32
-23
lines changed Original file line number Diff line number Diff line change 21
21
return
22
22
end
23
23
24
- if stdlib.isoctave() || isMATLABReleaseOlderThan('R2024a')
25
- c = acanon(p);
26
- else
24
+ try
27
25
pth = matlab.io.internal.filesystem.resolvePath(p);
28
26
c = pth.ResolvedPath;
29
27
if strempty(c)
30
28
c = stdlib.normalize(p);
31
29
end
30
+ catch e
31
+ switch e.identifier
32
+ case {'MATLAB:UndefinedFunction', 'Octave:undefined-function'}, c = acanon(p);
33
+ otherwise, rethrow(e)
34
+ end
32
35
end
33
36
34
37
try %#ok<*TRYNC>
Original file line number Diff line number Diff line change 14
14
if err == 0
15
15
i = s.ino;
16
16
end
17
- elseif isunix() && stdlib.has_java() && stdlib. java_api() >= 11
17
+ elseif isunix() && stdlib.java_api() >= 11
18
18
% Java 1.8 is buggy in some corner cases, so we require at least 11.
19
19
i = java.nio.file.Files.getAttribute(javaPathObject(path), "unix:ino", javaLinkOption());
20
20
end
Original file line number Diff line number Diff line change 8
8
end
9
9
% need to have string array type for p(:)
10
10
11
- if ~ stdlib .isoctave() && ~isMATLABReleaseOlderThan( ' R2025a ' )
11
+ try
12
12
if isunix
13
13
props = ["UserExecute", "GroupExecute", "OtherExecute"];
14
14
else
15
15
props = "Readable";
16
16
end
17
17
t = getPermissions(filePermissions(p), props);
18
18
ok = isfile(p(:)) & any(t{:,:}, 2);
19
- else
20
- a = file_attributes_legacy(p );
21
- ok = isfile(p ) && (a .UserExecute || a .GroupExecute || a .OtherExecute );
19
+ catch e
20
+ switch e.identifier
21
+ case {'MATLAB:UndefinedFunction', 'Octave:undefined-function'}
22
+ a = file_attributes_legacy(p);
23
+ ok = isfile(p) && (a.UserExecute || a.GroupExecute || a.OtherExecute);
24
+ otherwise, rethrow(e)
25
+ end
22
26
end
23
27
24
28
end
Original file line number Diff line number Diff line change 2
2
3
3
function ok = is_readable(p)
4
4
5
- if ~ stdlib .isoctave() && ~isMATLABReleaseOlderThan( ' R2025a ' )
5
+ try
6
6
props = "Readable";
7
7
if isunix
8
8
props = [props, "GroupRead", "OtherRead"];
9
9
end
10
10
t = getPermissions(filePermissions(p), props);
11
11
ok = any(t{:,:}, 2);
12
- else
13
- a = file_attributes_legacy(p );
14
- ok = a .UserRead || a .GroupRead || a .OtherRead ;
12
+ catch e
13
+ switch e.identifier
14
+ case {'MATLAB:UndefinedFunction', 'Octave:undefined-function'}
15
+ a = file_attributes_legacy(p);
16
+ ok = a.UserRead || a.GroupRead || a.OtherRead;
17
+ otherwise, rethrow(e)
18
+ end
15
19
end
16
20
21
+ end
17
22
%!assert (is_readable('is_readable.m'))
Original file line number Diff line number Diff line change 2
2
% optional: mex
3
3
4
4
function ok = is_symlink(p)
5
- arguments
6
- p {mustBeTextScalar}
7
- end
8
-
9
5
10
6
try
11
7
ok = isSymbolicLink(p);
Original file line number Diff line number Diff line change 2
2
% e.g. https://example.invalid is true
3
3
4
4
function y = is_url(s)
5
- arguments
6
- s {mustBeTextScalar}
7
- end
8
5
9
6
y = startsWith(s, alphanumericsPattern + "://");
10
7
Original file line number Diff line number Diff line change 2
2
3
3
function ok = is_writable(p)
4
4
5
- if ~ stdlib .isoctave() && ~isMATLABReleaseOlderThan( ' R2025a ' )
5
+ try
6
6
props = "Writable";
7
7
if isunix
8
8
props = [props, "GroupWrite", "OtherWrite"];
9
9
end
10
10
t = getPermissions(filePermissions(p), props);
11
11
ok = any(t{:,:}, 2);
12
- else
13
- a = file_attributes_legacy(p );
14
- ok = a .UserWrite || a .GroupWrite || a .OtherWrite ;
12
+ catch e
13
+ switch e.identifier
14
+ case {'MATLAB:UndefinedFunction', 'Octave:undefined-function'}
15
+ a = file_attributes_legacy(p);
16
+ ok = a.UserWrite || a.GroupWrite || a.OtherWrite;
17
+ otherwise, rethrow(e)
18
+ end
15
19
end
16
20
17
21
end
You can’t perform that action at this time.
0 commit comments