`
javaz
  • 浏览: 32554 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Environment 外部存储翻译-api文档

 
阅读更多

原文地址:

http://developer.android.com/intl/zh-cn/reference/android/os/Environment.html#getExternalStoragePublicDirectory%28java.lang.String%29

 

public static File getExternalStoragePublicDirectory (String type)
为放置一个特殊类型的文件获得顶级的public的外部存储路径。因为这是一般用户放置和管理他们自己文件的位置,所以你需要很小心的知道你把什么放在这个位置,确保你不会删除他们的文件或者妨碍他们自己的
组织结构。
在多用户设备(由UserManager描述),每个用户有他们自己的独立外部存储。应用
只能够有权使用正在运行的用户的外部存储。
这是一段在public外部存储上操作图片的标准编码例子。

void createExternalStoragePublicPicture() {
    // 在用户的public图片路径下创建一个我们需要放置我们的图片的路径
    // 注意,对于你放置在这的内容你需要很小心,因为用户通常管理这些文件。
    // 对于应用的图片和其他媒体考虑使用 Context.getExternalMediaDir().
    File path = Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_PICTURES);
    File file = new File(path, "DemoPicture.jpg");

    try {
        //确保图片路径存在
        path.mkdirs();

        // 非常简单的代码,把应用资源的图片copy为外部存储文件。
        // 注意编码没有错误检查,并且假设图片很小(不试图在块中对他做copy)
        // 注意如果外置存储当前没有被挂载,会是失败的。
        InputStream is = getResources().openRawResource(R.drawable.balloons);
        OutputStream os = new FileOutputStream(file);
        byte[] data = new byte[is.available()];
        is.read(data);
        os.write(data);
        is.close();
        os.close();

        // 告知媒体扫描关于这个,以便可以让用户立即获得。
        MediaScannerConnection.scanFile(this,
                new String[] { file.toString() }, null,
                new MediaScannerConnection.OnScanCompletedListener() {
            public void onScanCompleted(String path, Uri uri) {
                Log.i("ExternalStorage", "Scanned " + path + ":");
                Log.i("ExternalStorage", "-> uri=" + uri);
            }
        });
    } catch (IOException e) {
        // 不能穿件文件,例如因为外置存储没有被挂载。
        Log.w("ExternalStorage", "Error writing " + file, e);
    }
}

void deleteExternalStoragePublicPicture() {
    // 在用户public的图片目录下创建一个我们要放置图片的路径。
    //如果没有挂载侧失败
    File path = Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_PICTURES);
    File file = new File(path, "DemoPicture.jpg");
    file.delete();
}

boolean hasExternalStoragePublicPicture() {
    //在用户public的图片目录下创建一个我们要放置图片的路径并检查文件是否存在。
    //如果没有被挂载则图片不存在。    
    File path = Environment.getExternalStoragePublicDirectory(
    Environment.DIRECTORY_PICTURES);
    File file = new File(path, "DemoPicture.jpg");
    return file.exists();
}

 

    Context.getExternalMediaDir() :http://stackoverflow.com/questions/11908261/what-is-context-getexternalmediadir

 

返回值
  • 返回目录的路径.注意路径也许不存在,所以在使用前你必须确保他是存在的,例如使用File.mkdirs().

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics