FileDocCategorySizeDatePackage
TemporaryDirectory.javaAPI DocAndroid 1.5 API3660Wed May 06 22:41:02 BST 2009dalvik.system

TemporaryDirectory

public class TemporaryDirectory extends Object
Utility class to handle the setup of the core library's concept of what the "default temporary directory" is. Application code may call into this class with an appropriate base directory during its startup, as a reasonably easy way to get the standard property java.io.tmpdir to point at something useful.
since
Android 1.0

Fields Summary
private static final String
PROPERTY
system property name for the temporary directory
private static final String
PATH_NAME
final path component name for the temporary directory
private static boolean
configured
whether a temporary directory has been configured yet
Constructors Summary
Methods Summary
public static voidsetUpDirectory(java.lang.String baseDir)
Convenience method which is equivalent to setupDirectory(new File(baseDir)).

param
baseDir the base directory of the temporary directory

    
                           
         
        setUpDirectory(new File(baseDir));
    
public static synchronized voidsetUpDirectory(java.io.File baseDir)
Sets up the temporary directory, but only if one isn't already defined for this process, and only if it is possible (e.g., the directory already exists and is read-write, or the directory can be created). This call will do one of three things:
  • return without error and without doing anything, if a previous call to this method succeeded
  • return without error, having either created a temporary directory under the given base or verified that such a directory already exists
  • throw UnsupportedOperationException if the directory could not be created or accessed

param
baseDir the base directory of the temporary directory

        if (configured) {
            Logger.global.info("Already set to: " +
                    System.getProperty(PROPERTY));
            return;
        }

        File dir = new File(baseDir, PATH_NAME);
        String absolute = dir.getAbsolutePath();

        if (dir.exists()) {
            if (!dir.isDirectory()) {
                throw new UnsupportedOperationException(
                        "Name is used by a non-directory file: " +
                        absolute);
            } else if (!(dir.canRead() && dir.canWrite())) {
                throw new UnsupportedOperationException(
                        "Existing directory is not readable and writable: " +
                        absolute);
            }
        } else {
            if (!dir.mkdirs()) {
                throw new UnsupportedOperationException(
                        "Failed to create directory: " + absolute);
            }
        }
                
        System.setProperty(PROPERTY, absolute);
        configured = true;