Take the 2-minute tour ×
Code Review Stack Exchange is a question and answer site for peer programmer code reviews. It's 100% free, no registration required.

I have this code that generally creates directories within a directory.

File  userFolder = new File(rootPath+"/media/"+userBean.getUsername());
    File  userPhotosDir = new File(rootPath+"/media/"+userBean.getUsername()+"/photos");
    File  userAudioDir = new File(rootPath+"/media/"+userBean.getUsername()+"/tracks");
    userFolder.mkdir();
    userPhotosDir.mkdir();
    userAudioDir.mkdir();

When I this code runs it will generally look like this

The userFolder

\media\somename

The Photos folder

\media\somename\photos

The Audio Folder

\media\somename\folder

Where the photos and audio folder are inside the somename folder. while the somename folder is inside the media folder

share|improve this question
    
what is the question? –  tb- Jan 25 '13 at 18:14

2 Answers 2

Well, for the purpose of codereview:

  • There is a mkdirs() methods instead of the mkdir() method
  • You can use the new File(String, String) constructor to avoid taking care of slashes
  • If you have Java7, you can (and probably should) use Path. Especially, because there is a way to construct Paths with unlimited arguments, not only 2 as for File:

    Path dir = Paths.get(rootPath, "media", userBean.getUsername(), arg1);
    Files.createDirectories(dir);
    
  • You should check the return codes and errors. Could be helpful.

share|improve this answer

My main concern would be dealing with file path separators to construct long file paths. Luckily Java has File.separator which can be used to to manually construct paths. However try not to use them if necessary, and get the File objects to do the path creation for you.

String rootPath = "/";
String username = "tom";
String mediaDir = "media"
File root = new File(rootPath);
File userFolder = new File(root, mediaDir + File.separator + username);
File photos = new File(userFolder, "photos");
File tracks = new File(userFolder, "tracks");
if (photos.isFile()) {
    // delete it? Do something...
}
if (!photos.exists()) {
    photos.mkdirs();
}

Like tb- suggests in his answer, if you have Java 7 you may also want to look into Paths, Path and Files

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.