001package co.codewizards.cloudstore.core.oio.nio; 002 003import static co.codewizards.cloudstore.core.oio.OioFileFactory.*; 004import static java.util.Objects.*; 005 006import java.io.IOException; 007import java.nio.file.Files; 008import java.nio.file.Path; 009 010import co.codewizards.cloudstore.core.oio.File; 011 012/** 013 * @author Sebastian Schefczyk 014 * 015 */ 016public final class NioFileUtil { 017 018 private NioFileUtil() { } 019 020 public static File createTempDirectory(final String prefix) throws IOException { 021 return createFile(Files.createTempDirectory(prefix).toFile()); 022 } 023 024 public static File createTempFile(final String prefix, final String suffix) throws IOException { 025 return createFile(java.io.File.createTempFile (prefix, suffix)); 026 } 027 028 public static File createTempFile(final String prefix, final String suffix, final File parentDir) throws IOException { 029 return createFile(java.io.File.createTempFile (prefix, suffix, castOrFail(parentDir).getIoFile())); 030 } 031 032 static NioFile castOrFail(final File file) { 033 if (file instanceof NioFile) 034 return (NioFile) file; 035 else 036 throw new IllegalArgumentException("Could not cast file: " 037 + file.getClass().getCanonicalName()); 038 } 039 040 static String toPathString(final Path path) { 041 requireNonNull(path, "path"); 042 return path.toString().replace(java.io.File.separatorChar, '/'); 043 } 044 045 static String toPathString(final java.io.File file) { 046 final Path path = file.toPath(); 047 requireNonNull(path, "path"); 048 return path.toString().replace(java.io.File.separatorChar, '/'); 049 } 050 051 static File[] convert(final java.io.File[] ioFilesListFiles) { 052 if (ioFilesListFiles == null) 053 return null; 054 final File[] listFiles = new NioFile[ioFilesListFiles.length]; 055 for (int i = 0; i < ioFilesListFiles.length; i++) { 056 listFiles[i] = new NioFile(ioFilesListFiles[i]); 057 } 058 return listFiles; 059 } 060}