Code

Create Nested Directories From List


import org.junit.Before;
import org.junit.Test;

import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;

import static org.junit.Assert.assertNotNull;

/**
* Created by dking on 7/18/2014.
*/
public class NioStructureTest {
final String FILE_PREFIX = "file://";
final String DIRECTORY_FILE_PREFIX = "file:///";
final List<URI> dirsList = new ArrayList<>();
final List<String> dirNamesList = new ArrayList<>();

@Test
public void initializeFrontEndStructure() throws IOException {
//URI rootPathStr = URI.create(String.format("%s%s", DIRECTORY_FILE_PREFIX, "Temp//niostructuretest"));
//boolean yesOverwriteExistingDirectory = true;
//createDirectory(rootPathStr.getPath(), yesOverwriteExistingDirectory);
}

private void createDirectory(String rootPathStr, boolean overwrite, boolean isNested) throws IOException {
if (!FileSystems.getDefault().getPath(rootPathStr).toFile().exists()) {
doCreateDirectory(rootPathStr, isNested);
} else if (FileSystems.getDefault().getPath(rootPathStr).toFile().exists() && overwrite) {
doDeleteDirectory(rootPathStr);
doCreateDirectory(rootPathStr, isNested);
} else
System.out.println("RootPath already exists.");
}

private void doDeleteDirectory(String rootPathStr) throws IOException {
System.out.printf("doDeleteDirectory with arg: %s%n", rootPathStr);
Files.delete(Paths.get(URI.create(String.format("%s%s", FILE_PREFIX, rootPathStr))));
}

private void doCreateDirectory(String rootPathStr, boolean isNested) throws IOException {
System.out.printf("doCreateDirectory with arg: %s%n", rootPathStr);
if (isNested) {
File file = new File(rootPathStr);
boolean wasDirsCreated = file.mkdirs();
if (wasDirsCreated) {
System.out.printf("Directories were created: %s%n", file.getAbsolutePath());
} else {
System.out.printf("Directores were NOT created: %s%n", file.getAbsolutePath());
}
} else {
Path rootPath = Files.createDirectory(Paths.get(URI.create(String.format("%s%s", FILE_PREFIX, rootPathStr))));
assertNotNull("RootPath was null", rootPath);
System.out.printf("Path created: %s%n", rootPath.toString());
}
}

@Before
public void setUp() throws IOException {
dirNamesList.add("Temp//niostructuretest");
dirNamesList.add("Temp//niostructuretest//src//main//java");
dirNamesList.add("Temp//niostructuretest//src//main//resources");
dirNamesList.add("Temp//niostructuretest//src//main//webapp");
dirNamesList.add("Temp//niostructuretest//src//main//webapp//WEB-INF");

System.out.println("Building directory structure in memory.");
for (String directoryName : dirNamesList) {
if (null != directoryName) {
dirsList.add(URI.create(String.format("%s%s", DIRECTORY_FILE_PREFIX, directoryName)));
}
}
System.out.println("In memory structure is: " + dirsList);

//createDirectory(dirsList.get(4).getPath(), true, false);

System.out.println("Creating the directories from the stored structures.");
for (URI uriPath : dirsList) {
if (null != uriPath) {
try {
createDirectory(uriPath.getPath(), false, true);
} catch (IOException e) {
e.printStackTrace();
}
}
}

System.out.println("Done with directories setup.");
}
}

&nbsp;

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s