如何获取 Android 设备内部下载文件夹路径? [复制]

2024-02-09

是否可以获取Android设备内部下载文件夹路径?


如果设备有 SD 卡,您可以使用:

Environment.getExternalStorageState() 

如果您没有 SD 卡,您可以使用:

Environment.getDataDirectory()

如果没有SD卡,您可以在设备本地创建自己的目录。

    //if there is no SD card, create new directory objects to make directory on device
        if (Environment.getExternalStorageState() == null) {
                        //create new file directory object
            directory = new File(Environment.getDataDirectory()
                    + "/RobotiumTestLog/");
            photoDirectory = new File(Environment.getDataDirectory()
                    + "/Robotium-Screenshots/");
            /*
             * this checks to see if there are any previous test photo files
             * if there are any photos, they are deleted for the sake of
             * memory
             */
            if (photoDirectory.exists()) {
                File[] dirFiles = photoDirectory.listFiles();
                if (dirFiles.length != 0) {
                    for (int ii = 0; ii <= dirFiles.length; ii++) {
                        dirFiles[ii].delete();
                    }
                }
            }
            // if no directory exists, create new directory
            if (!directory.exists()) {
                directory.mkdir();
            }

            // if phone DOES have sd card
        } else if (Environment.getExternalStorageState() != null) {
            // search for directory on SD card
            directory = new File(Environment.getExternalStorageDirectory()
                    + "/RobotiumTestLog/");
            photoDirectory = new File(
                    Environment.getExternalStorageDirectory()
                            + "/Robotium-Screenshots/");
            if (photoDirectory.exists()) {
                File[] dirFiles = photoDirectory.listFiles();
                if (dirFiles.length > 0) {
                    for (int ii = 0; ii < dirFiles.length; ii++) {
                        dirFiles[ii].delete();
                    }
                    dirFiles = null;
                }
            }
            // if no directory exists, create new directory to store test
            // results
            if (!directory.exists()) {
                directory.mkdir();
            }
        }// end of SD card checking

在你的manifest.xml中添加权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取 Android 设备内部下载文件夹路径? [复制] 的相关文章

随机推荐

  • Magento - 使用更新 XML 删除块

    如何使用布局 xml 文件删除已存在的块 具体来说 我想从名为 top switches 的块中删除名为 currency 的块 它被插入到directory xml 文件中 如下所示
  • 使用 LINQ,如何从列表中查找具有给定属性值的对象?

    我有一堂课叫Questions This Questions有属性QuestionID and QuestionAnswer 迭代此过程时List of Question在 foreach 中 我必须找到 QuestionID 12 如果我
  • Sqlite C++ 中的预准备语句如何工作

    我不知道如何在我的 Sqlite3 代码中实现准备好的语句 include
  • C# pinvoke 封送联合

    我在将 C Union 转换为 C 时遇到一些问题 这是联盟的定义 union Info char varChar 8 short varShort 4 int varInteger 2 float varFloat 2 double va
  • 无法在 Kivy 中查看 tiff 图像

    problem 我可以使用以下命令加载图片Image kivy 中的模块 但由于某种原因 我无法将 tif 文件加载到 kivy 中 当图像源为 pics lugia png 图像加载得很好 但如果来源是 pics snorlax tif
  • java 字段变化监听器

    所以我真的想要某种方法来检测某个对象的场变化 我用谷歌搜索了很长一段时间但没有找到任何东西 所以基本上我需要知道的是对象的某些变量何时发生变化 让我们以这个类为例 public class Example String text test
  • GWT 开发者模式代码服务器

    GWT 开发人员模式嵌入式 http 服务器对我来说很有意义 但我承认我不明白 代码服务器 是什么 让我印象深刻的是 一个 html 文件包含了浏览器在开发过程中使用处理 AJAX 的嵌入式 Jetty 服务器呈现 GWT 应用程序所需的所
  • 在 AngularJS 中使用 ng-repeat 过滤结果 6 到 10(共 100 个)

    我看到limitTo文档中的过滤器 这允许我限制前 5 个或后 5 个结果 但我想设置限制的开始位置 以便我可以显示第二组 5 个结果 有内置过滤器吗 从 Angular 1 4 0 开始 limitTo filter https docs
  • 如何修改子字符串?

    使用排序规则xxx german2 ci它治疗 and ue相同 是否有可能出现所有M nchen突出显示如下 输入示例 M nchen can also be written as Muenchen 输出示例 b M nchen b ca
  • Git - 递归删除文件扩展名

    我试图递归地删除文件扩展名 但无论我尝试什么 它都会失败 谢谢你的任何想法 ubuntu ubuntu laptop hh hh sdk src uboot hh git rm r cached o fatal pathspec src u
  • DirectShow 与 Media Foundation 进行视频捕捉?

    我正在尝试在视频捕获 监控 流媒体应用程序的这两个 API 之间进行选择 但我不确定哪个是最佳选择 一些背景知识 我需要它与各种视频采集卡 适配器一起使用 该应用程序可能会用 C 开发 因此本机 API 至关重要 性能很重要 因为我需要处理
  • 如何检查密码重置令牌是否已过期?

    我正在使用 ASP NET Identity 并且具有基本的忘记密码 重置密码功能 当您填写忘记密码的表单时 它会使用以下命令创建一个重置令牌 userManager GeneratePasswordResetTokenAsync user
  • 为什么 CoreBluetooth 一次又一次地发现相同的外设?

    我已经在 StackOverflow 上查看了类似的问题 但它们都处理由于收到扫描响应数据而对 CBManager 委托的 didDiscover 方法进行第二次调用 我的情况有所不同 我坐在家里的办公桌前 我的应用程序在 iPhone 6
  • 使用 matplotlib 对带有标签的点进行动画处理

    我有一个带有线条的动画 现在我想标记这些点 我试过plt annotate 我尝试过plt text 但标签不动 这是我的示例代码 import numpy as np import matplotlib pyplot as plt imp
  • 如何设置ScrollView内容的大小?

    现在 ScrollView ContentSize 属性是只读的 我该如何设置 ScrollView 内容的大小 在 UIScrollView 中可设置的属性完全相同 但不是 xamarin 形式 我有这个
  • JSON.stringify(response.json()) 和 response.text() 之间的区别

    将响应流转换为 JSON 后 两者是否完全相同 const responseA fetch endpointReturnsJson const textA await responseA text 在平行宇宙里 const response
  • 我们可以在 SVG 模板中渲染 Angular 组件吗?

    看到我们可以将模板文件另存为 svg而不是 html现在我想我可以制作 svg 组件 可以按如下方式使用 main component svg
  • Rails + Compass:与直接使用 haml + blueprint 相比的优势

    我有一些在 Rails 项目上使用 haml sass 的经验 我最近开始将它们与 blueprintcss 一起使用 我所做的唯一一件事是将 blueprint css 转换为 sass 文件 并从那里开始编码 我什至有一个轨道发电机 h
  • 事后实现接口

    我认为 以下内容无法在 Java 中完成 但我很乐意学习如何实现类似的东西 假设我们有一个类 C 它已在编译代码中使用 我们既不能更改该代码 也不能更改 C 的原始定义 进一步假设有一些有趣的代码可以重用 只要 C 实现接口 I 即可 事实
  • 如何获取 Android 设备内部下载文件夹路径? [复制]

    这个问题在这里已经有答案了 是否可以获取Android设备内部下载文件夹路径 如果设备有 SD 卡 您可以使用 Environment getExternalStorageState 如果您没有 SD 卡 您可以使用 Environment