com.badlogic.gdx.Files.java Source code

Java tutorial

Introduction

Here is the source code for com.badlogic.gdx.Files.java

Source

/*******************************************************************************
 * Copyright 2011 See AUTHORS file.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/

package com.badlogic.gdx;

import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.utils.GdxRuntimeException;

/** Provides standard access to the filesystem, classpath, Android SD card, and Android assets directory.
 * @author mzechner
 * @author Nathan Sweet */
public interface Files {
    /** Indicates how to resolve a path to a file.
     * @author mzechner
     * @author Nathan Sweet */
    public enum FileType {
        /** Path relative to the root of the classpath. Classpath files are always readonly. Note that classpath files are not
         * compatible with some functionality on Android, such as {@link Audio#newSound(FileHandle)} and
         * {@link Audio#newMusic(FileHandle)}. */
        Classpath,

        /** Path relative to the asset directory on Android and to the application's root directory on the desktop. On the desktop,
         * if the file is not found, then the classpath is checked. This enables files to be found when using JWS or applets.
         * Internal files are always readonly. */
        Internal,

        /** Path relative to the root of the SD card on Android and to the home directory of the current user on the desktop. */
        External,

        /** Path that is a fully qualified, absolute filesystem path. To ensure portability across platforms use absolute files only
         * when absolutely (heh) necessary. */
        Absolute,

        /** Path relative to the private files directory on Android and to the application's root directory on the desktop. */
        Local;
    }

    /** Returns a handle representing a file or directory.
     * @param type Determines how the path is resolved.
     * @throws GdxRuntimeException if the type is classpath or internal and the file does not exist.
     * @see FileType */
    public FileHandle getFileHandle(String path, FileType type);

    /** Convenience method that returns a {@link FileType#Classpath} file handle. */
    public FileHandle classpath(String path);

    /** Convenience method that returns a {@link FileType#Internal} file handle. */
    public FileHandle internal(String path);

    /** Convenience method that returns a {@link FileType#External} file handle. */
    public FileHandle external(String path);

    /** Convenience method that returns a {@link FileType#Absolute} file handle. */
    public FileHandle absolute(String path);

    /** Convenience method that returns a {@link FileType#Local} file handle. */
    public FileHandle local(String path);

    /** Returns the external storage path directory. This is the SD card on Android and the home directory of the current user on
     * the desktop. */
    public String getExternalStoragePath();

    /** Returns true if the external storage is ready for file IO. Eg, on Android, the SD card is not available when mounted for use
     * with a PC. */
    public boolean isExternalStorageAvailable();

    /** Returns the local storage path directory. This is the private files directory on Android and the directory of the jar on the
     * desktop. */
    public String getLocalStoragePath();

    /** Returns true if the local storage is ready for file IO. */
    public boolean isLocalStorageAvailable();
}