Creates a new and empty directory in the default temp directory using the given prefix. : Directory « File « Java Tutorial






/*
 * Copyright Aduna (http://www.aduna-software.com/) (c) 1997-2006.
 *
 * Licensed under the Aduna BSD-style license.
 */
import java.io.File;
import java.io.IOException;

public class Main {
  
  /**
   * Creates a new and empty directory in the default temp directory using the
   * given prefix. This methods uses {@link File#createTempFile} to create a
   * new tmp file, deletes it and creates a directory for it instead.
   * 
   * @param prefix The prefix string to be used in generating the diretory's
   * name; must be at least three characters long.
   * @return A newly-created empty directory.
   * @throws IOException If no directory could be created.
   */
  public static File createTempDir(String prefix)
    throws IOException
  {
    String tmpDirStr = System.getProperty("java.io.tmpdir");
    if (tmpDirStr == null) {
      throw new IOException(
        "System property 'java.io.tmpdir' does not specify a tmp dir");
    }
    
    File tmpDir = new File(tmpDirStr);
    if (!tmpDir.exists()) {
      boolean created = tmpDir.mkdirs();
      if (!created) {
        throw new IOException("Unable to create tmp dir " + tmpDir);
      }
    }
    
    File resultDir = null;
    int suffix = (int)System.currentTimeMillis();
    int failureCount = 0;
    do {
      resultDir = new File(tmpDir, prefix + suffix % 10000);
      suffix++;
      failureCount++;
    }
    while (resultDir.exists() && failureCount < 50);
    
    if (resultDir.exists()) {
      throw new IOException(failureCount + 
        " attempts to generate a non-existent directory name failed, giving up");
    }
    boolean created = resultDir.mkdir();
    if (!created) {
      throw new IOException("Failed to create tmp directory");
    }
    
    return resultDir;
  }

}








11.4.Directory
11.4.1.Create a directory (or several directories)
11.4.2.Create directory
11.4.3.Create directory along with required nonexistent parent directories
11.4.4.Create a directory; all ancestor directories must exist
11.4.5.Create a directory; all non-existent ancestor directories are automatically created
11.4.6.Create a directories recursively
11.4.7.Creates a new and empty directory in the default temp directory using the given prefix.
11.4.8.Determine File or Directory
11.4.9.Deleting a Directory (an empty directory)
11.4.10.Determine if file or directory exists
11.4.11.Determine if File or Directory is hidden
11.4.12.If a file or directory readable
11.4.13.Get name of parent directory
11.4.14.Get name of specified file or directory
11.4.15.Get parent directory as a File object
11.4.16.Get the content of a directory
11.4.17.Checks, whether the child directory is a subdirectory of the base directory.
11.4.18.Delete file or directory
11.4.19.Delete directory recursively
11.4.20.Delete file or directory when virtual machine terminates
11.4.21.Calculate directory size
11.4.22.Change last modified time of a file or directory
11.4.23.Mark file or directory Read Only
11.4.24.Rename file or directory
11.4.25.Moving a File or Directory to Another Directory
11.4.26.Search for files recursively
11.4.27.Traversing all files and directories under dir
11.4.28.Traversing only directories under dir
11.4.29.Traversing only files under dir
11.4.30.Copying a Directory
11.4.31.Check if a directory is not empty
11.4.32.Getting the Current Working Directory
11.4.33.Get all files and folders under a certain folder and save them to a set
11.4.34.Recursively search a directory tree
11.4.35.Searches through the directory tree