18 ответов:
после ~7 лет, я буду обновлять его для лучшего подхода, который предлагается Божо.
new File("/path/directory").mkdirs();удалено:
File theDir = new File("new folder"); // if the directory does not exist, create it if (!theDir.exists()) { System.out.println("creating directory: " + theDir.getName()); boolean result = false; try{ theDir.mkdir(); result = true; } catch(SecurityException se){ //handle it } if(result) { System.out.println("DIR created"); } }
new File("/path/directory").mkdirs();здесь "Каталог" - это имя каталога, который вы хотите создать/существовать.
С Java 7, Вы можете использовать
Files.createDirectories().например:
Files.createDirectories(Paths.get("/path/to/directory"));
вы можете попробовать FileUtils#forceMkdir
FileUtils.forceMkdir("/path/directory");этой библиотека есть много полезных функций.
mkdir vs mkdirs
если вы хотите создать один каталог, используйте
mkdirnew File("/path/directory").mkdir();если вы хотите создать иерархию структуры папок использовать
mkdirsnew File("/path/directory").mkdirs();
создать один каталог.
new File("C:\Directory1").mkdir();создайте каталог с именем "Directory2 и все его подкаталоги "Sub2" и "Sub-Sub2" вместе.
new File("C:\Directory2\Sub2\Sub-Sub2").mkdirs()источник: это идеальная учебник , вы найдете также пример использования.
следующий метод должен делать то, что вы хотите, просто убедитесь, что вы проверяете возвращаемое значение mkdir ()/mkdirs()
private void createUserDir(final String dirName) throws IOException { final File homeDir = new File(System.getProperty("user.home")); final File dir = new File(homeDir, dirName); if (!dir.exists() && !dir.mkdirs()) { throw new IOException("Unable to create " + dir.getAbsolutePath(); } }
для java 7 и выше:
Path path = Paths.get("/your/path/string"); if(!Files.exists(path)) { try { Files.createDirectories(path); } catch (IOException e) { e.printStackTrace(); } }
хотя этот вопрос был дан ответ. Я хотел бы поставить что-то дополнительное, т. е. если существует файл с именем каталога, который вы пытаетесь создать, чем он должен вызвать ошибку. Для будущих посетителей.
public static void makeDir() { File directory = new File(" dirname "); if (directory.exists() && directory.isFile()) { System.out.println("The dir with name could not be" + " created as it is a normal file"); } else { try { if (!directory.exists()) { directory.mkdir(); } String username = System.getProperty("user.name"); String filename = " path/" + username + ".txt"; //extension if you need one } catch (IOException e) { System.out.println("prompt for error"); } } }
просто хотел указать всем, кто звонит
File.mkdir()илиFile.mkdirs()быть осторожнымFile"объект" - это каталог, а не файл. Например, если вы вызываетеmkdirs()на пути/dir1/dir2/file.txt, это создаст папку на имяfile.txtчто, вероятно, не то, чего вы хотели. Если вы создаете новый файл, а также автоматически создавать родительские папки вы можете сделать что-то вроде этого:File file = new File(filePath); if (file.getParentFile() != null) { file.getParentFile().mkdirs(); }
аккуратный и чистый:
import java.io.File; public class RevCreateDirectory { public void revCreateDirectory() { //To create single directory/folder File file = new File("D:\Directory1"); if (!file.exists()) { if (file.mkdir()) { System.out.println("Directory is created!"); } else { System.out.println("Failed to create directory!"); } } //To create multiple directories/folders File files = new File("D:\Directory2\Sub2\Sub-Sub2"); if (!files.exists()) { if (files.mkdirs()) { System.out.println("Multiple directories are created!"); } else { System.out.println("Failed to create multiple directories!"); } } } }
попробуй этим.
import java.io.File; public class MakingDirectory { public static void main(String[] args) { String s="d:\msreddy\sample1"; File file=new File(s); file.mkdirs(); } }для получения дополнительной информации посмотреть этого.
создать папку в Java, у нас есть два метода
здесь метод makedirectory создает один каталог, если он не существует.
File dir = new File("path name"); boolean isCreated = dir.mkdir();и
File dir = new File("path name"); boolean isCreated = dir.mkdirs();здесь метод makedirectories создаст все каталоги, которые отсутствуют в пути, который представляет объект file.
например, см. ссылку ниже (очень хорошо объяснил). Надеюсь на это помогает!! http://www.flowerbrackets.com/create-directory-java-program/
Это способ работы для меня сделать один каталог или несколько или их: необходимо импортировать java. io. File;
/ * введите код ниже, чтобы добавить diectory dir1 или проверить, существует ли dir1, если нет, поэтому создайте его и то же самое с dir2 и dir3 */File filed = new File("C:\dir1"); if(!filed.exists()){ if(filed.mkdir()){ System.out.println("directory is created"); }} else{ System.out.println("directory exist"); } File filel = new File("C:\dir1\dir2"); if(!filel.exists()){ if(filel.mkdir()){ System.out.println("directory is created"); }} else{ System.out.println("directory exist"); } File filet = new File("C:\dir1\dir2\dir3"); if(!filet.exists()){ if(filet.mkdir()){ System.out.println("directory is created"); }} else{ System.out.println("directory exist"); }
эта функция позволяет создать каталог в домашнем каталоге пользователя.
private static void createDirectory(final String directoryName) { final File homeDirectory = new File(System.getProperty("user.home")); final File newDirectory = new File(homeDirectory, directoryName); if(!newDirectory.exists()) { boolean result = newDirectory.mkdir(); if(result) { System.out.println("The directory is created !"); } } else { System.out.println("The directory already exist"); } }
если вы хотите быть уверены, что его создали тогда этот:
final String path = "target/logs/"; final File logsDir = new File(path); final boolean logsDirCreated = logsDir.mkdir(); if (!logsDirCreated) { final boolean logsDirExists = logsDir.exists(); assertThat(logsDirExists).isTrue(); }beacuse
mkDir()возвращает логическое значение, и findbugs будет кричать об этом, если вы не используете переменную. Также это не приятно...
mkDir()возвращает только true, еслиmkDir()создает его. Если каталог существует, то он возвращает значение false, поэтому проверьте папку вы создали, только вызовexists()еслиmkDir()возвращает false.
assertThat()будет проверяет результат и не выполняется, еслиexists()возвращает false. ОФК вы можете использовать другие вещи для обработки созданного каталога.
public class Test1 { public static void main(String[] args) { String path = System.getProperty("user.home"); File dir=new File(path+"/new folder"); if(dir.exists()){ System.out.println("A folder with name 'new folder' is already exist in the path "+path); }else{ dir.mkdir(); } } }
можно найти makdir ()функция для создания нового каталога в папку, где вы хотите.
Comments