How to get the latest frame from capture device (camera) in opencv
I want to change modification timestamp of a binary file. What is the best way for doing this?
Would opening and closing the file be a good option? (I require a solution where the modification of the timestamp will be changed on every platform and JVM).
Solution 1:
The File class has a setLastModified method. That is what ANT does.
Solution 2:
My 2 cents, based on @Joe.M answer
public static void touch(File file) throws IOException{
long timestamp = System.currentTimeMillis();
touch(file, timestamp);
}
public static void touch(File file, long timestamp) throws IOException{
if (!file.exists()) {
new FileOutputStream(file).close();
}
file.setLastModified(timestamp);
}
Solution 3:
Since File
is a bad abstraction, it is better to use Files
and Path
:
public static void touch(final Path path) throws IOException {
Objects.requireNonNull(path, "path is null");
if (Files.exists(path)) {
Files.setLastModifiedTime(path, FileTime.from(Instant.now()));
} else {
Files.createFile(path);
}
}
Solution 4:
Here's a simple snippet:
void touch(File file, long timestamp)
{
try
{
if (!file.exists())
new FileOutputStream(file).close();
file.setLastModified(timestamp);
}
catch (IOException e)
{
}
}
Solution 5:
I know Apache Ant has a Task which does just that.
See the source code of Touch (which can show you how they do it)
They use FILE_UTILS.setFileLastModified(file, modTime);
, which uses ResourceUtils.setLastModified(new FileResource(file), time);
, which uses a org.apache.tools.ant.types.resources.Touchable
, implemented by org.apache.tools.ant.types.resources.FileResource
...
Basically, it is a call to File.setLastModified(modTime)
.