This life is here for a reason, we don’t have to say exactly what that reason is, we just have to believe in it no matter what happens in this life, we have to understand one thing. That thing is that we are not alone in the universe. I’m not saying there are aliens out there, but yeah there are aliens out there. It’s a concept that people have wondered about from time to time, there doesn’t appear to be anything else you can do but wonder what’s going on in the skies above us! There are so many things in this life that don’t always seem to matter, but you wish they would, at least that’s what I’d like to think would happen. I’m not sure that’s how this life is meant to be understood of course. If there’s anything in this life that doesn’t make sense, then it will always be there. It doesn’t have to make sense, that’s the absurdity of it all! Why should it make sense if there’s nothing to grasp from it all? I’m not sure I know the ansewr to that question. Such a life comes and goes an...
Backing up a file in Java can be fairly simple and straight forward. Let's think about it for a second. You have a file.
- You want to be able to store a copy of that file somewhere on your file system.
- You either want to keep the original or delete the original.
- The format of the filename must be unique, so it doesn't collide with other backed up files.
There are just a few considerations to think about. Here's a solution I came up with in Java:
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.Files;
import java.io.File;
import java.util.Date;
import java.text.SimpleDateFormat;
public class Backup {
public static void main(String[] args) {
if (args.length == 1) {
File file = new File(args[0]);
if (file.exists()) {
try {
File dir = new File("archive");
if (!dir.exists()) {
dir.mkdirs();
}
Date date = new Date();
SimpleDateFormat dt = new SimpleDateFormat("'.'yyyy-MM-dd-HH-mm-ss");
Path source = Paths.get(args[0]);
Path target = Paths.get(dir.getName(), file.getName() + dt.format(date));
System.out.println("Backing up file: " + source + " --> " + target);
Files.copy(source, target);
file.delete();
} catch (Exception e) {
e.printStackTrace();
}
} else {
System.err.println("The file you specified '" + file.getName() + "' doesn't exist.");
}
}
}
}
As you can see I chose to delete the file at the end of the process. But let's take a look at what this does:
- We make sure at least one filenamne is passed in and if it exists we continue.
- We create a home for the archived file, in this example we call it archive.
- We create a date and format it.
- We set a source and a target and output that we are copying the source to the target.
- Using
Files.copywe do the actual backup. - Then we delete the file at the end of the process.
That's all there is to it. I'm sure there could be a way to refactor this so it's better somehow. I'll have to look into it.
Comments
Post a Comment