Skip to content

Commit f39e668

Browse files
committed
add touch, get_modtime, set_modtime
1 parent afbc251 commit f39e668

File tree

7 files changed

+74
-0
lines changed

7 files changed

+74
-0
lines changed

+stdlib/+fileio/get_modtime.m

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
function t = get_modtime(p)
2+
%get_modtime get path modification time
3+
arguments
4+
p (1,1) string
5+
end
6+
7+
if stdlib.fileio.exists(p)
8+
t = datetime(java.io.File(p).lastModified()/1e3, "ConvertFrom", "PosixTime");
9+
else
10+
t = datetime.empty();
11+
end
12+
13+
end

+stdlib/+fileio/set_modtime.m

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
function ok = set_modtime(p)
2+
arguments
3+
p (1,1) string
4+
end
5+
6+
utc = convertTo(datetime("now", "TimeZone", "UTC"), "posixtime");
7+
8+
ok = java.io.File(p).setLastModified(int64(utc) * 1000);
9+
10+
end

+stdlib/+fileio/touch.m

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
function ok = touch(p)
2+
arguments
3+
p (1,1) string
4+
end
5+
6+
if stdlib.fileio.exists(p)
7+
ok = stdlib.fileio.set_modtime(p);
8+
else
9+
ok = java.io.File(p).createNewFile();
10+
end
11+
12+
end

+stdlib/get_modtime.m

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
function t = get_modtime(p)
2+
arguments
3+
p (1,1) string
4+
end
5+
6+
t = stdlib.fileio.get_modtime(p);
7+
8+
end

+stdlib/set_modtime.m

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
function ok = set_modtime(p)
2+
arguments
3+
p (1,1) string
4+
end
5+
6+
ok = stdlib.fileio.set_modtime(p);
7+
8+
end

+stdlib/touch.m

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
function ok = touch(p)
2+
arguments
3+
p (1,1) string
4+
end
5+
6+
ok = stdlib.fileio.touch(p);
7+
8+
end

test/TestFileImpure.m

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,21 @@ function test_expanduser(tc)
5757
end
5858

5959

60+
function test_touch_modtime(tc)
61+
62+
fn = tempname;
63+
tc.verifyTrue(stdlib.touch(fn))
64+
65+
t0 = stdlib.get_modtime(fn);
66+
pause(1.1)
67+
tc.verifyTrue(stdlib.set_modtime(fn))
68+
t1 = stdlib.get_modtime(fn);
69+
70+
tc.verifyGreaterThan(t1, t0)
71+
72+
end
73+
74+
6075
function test_absolute_path(tc)
6176
import matlab.unittest.constraints.StartsWithSubstring
6277

0 commit comments

Comments
 (0)