Skip to main content

Change Created Date of a File

Sometimes you want to be able to change the created date of a file. Don't ask me WHY you would ever need to do this, but well here's a way in Java.

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.FileTime;
import java.time.*;

public class ChangeCreatedDate {

    public static void main(String[] args) throws IOException {
        if (args.length == 2) {
            File file = new File(args[0]);
            if (file.exists()) {
                file.setLastModified(System.currentTimeMillis());
            } else {
                file.createNewFile();
            }
        }

        LocalDate date = LocalDate.parse(args[1]);
        LocalTime time = LocalTime.now();
        Path file = Paths.get(args[0]);
        FileTime fileTime = FileTime.fromMillis(getMillisecondsSince1970(date, time));
        Files.setAttribute(file, "creationTime", fileTime);
    }

    public static long getMillisecondsSince1970(LocalDate date, LocalTime time) {
        ZonedDateTime zonedDateTime = ZonedDateTime.of(
                date,
                time,
                ZoneId.systemDefault());
        return zonedDateTime.toInstant().toEpochMilli();
    }
}

Looking back at it, I wonder why I didn't make it so you could update the time as well as the date. Interesting. I mean it would make sense to be able to update both the date AND time. But I didn't have that in this section of code. Oh well, I'm sure I'll change it someday.

I find it interesting that we're updating an attribute of the file. One would think it would be someplace else, or easier to access directly on the file object itself. But well, it's not. So that's just that.

Comments

Popular posts from this blog

Suicidal Ideation

 Over the years I've had to deal with suicidal ideation. Those are thoughts of being dead, some more extreme than others. It causes issues for me a lot of the time. It's not an easy thing to talk about at all. Here's what it is: Suicidal ideation ( suicidal thoughts )  are thoughts or ideas centered around death or suicide . Experiencing suicidal ideation doesn’t mean you’re going to kill yourself, but it can be a warning sign.

Ever Wonder

 Ever just sit and wonder about the things to wonder about? There are so many things that you can enjoy and think about or wonder about. It's just possible that you would be able to do such a thing. I'm not certain how it would go for you, as I am only a person. I don't know how you feel. So here we are, just waiting for something amazing to happen. It doesn't happen all the time unfortunately. It can be annoying at best.

Multidimensional Arrays

Ah Multidimensional Arrays. Nothing too crazy in JavaScript. Just a little bit of this and that. So typical arrays are fun and easy. You create them like so: var colors = new Array(); colors[0] = "Red"; colors[1] = "Yellow"; colors[2] = "Blue"; Well that's fine and dandy, but what if you want to associate something with each of those? For example, what if you wanted to create a menu? You'll need at minimum a link name and a target. We could do something like this: var colors = new Array(); colors[0] = new Array(); colors[0][0] = "red.htm"; colors[0][1] = "Red"; colors[1] = new Array(); colors[1][0] = "yellow.htm"; colors[1][1] = "Yellow"; colors[2] = new Array(); colors[2][0] = "blue.htm"; colors[2][1] = "Blue"; function createColors() { document.write('<ul id="colors">'); for (var i = 0; i < colors.length; i++) { var link = colors[i][0]; ...