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).