So … I had a therapy session. Messaging therapy. Yeah it’s not for me. I need to be able to speak with someone face to face, or audio or something. Just chatting over a messaging service is not what I had in mind when it comes to therapy options. Eh, it’s whatever. I’ll deal without the bullshit that is what was offered as a “free” plan. I’ll get over it. I’ll just find something else that will work for me, that actually works out well and will meet my needs better. I don’t blame the company or the person I spoke with briefly, but it’s just not for me it would seem. That’s okay though. I gave it a shot. Figured that’s the least I could do considering my mental health and everything that goes on. They just weren’t equiped with the kind of service I need I think. Maybe I don’t need therapy. Perhaps I can do without and I’ll be just fine. Yeah that’s a good idea. I can deal with life without the though process of a therapist seeking to help me. There’s nothing wrong with that. In a way...
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