如何在android中的sdcard中创建文件夹

2024-02-05

我想在我的 SD 卡中创建文件夹,我使用了下面的代码:

public class Screen extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.welcome);

        operateOnFirstUsage();
    }

    private void operateOnFirstUsage() {

        String state = Environment.getExternalStorageState();
        Log.d("Media State", state);

        if (Environment.MEDIA_MOUNTED.equals(state)) {
            File appDirectory = new File(
                    Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyApp/");

            Log.d("appDirectroyExist", appDirectory.exists() + "");
            if (!appDirectory.exists()) 
                Log.d("appDir created: ", appDirectory.mkdir() + "");

            File dbDirectory = new File(
                    Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyApp/Database/");

            Log.d("dbDirectroyExist", dbDirectory.exists() + "");
            if (!dbDirectory.exists())
                Log.d("dbDir created: ", dbDirectory.mkdirs() + "");


            File themesDirectory = new File(
                    Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyApp/Themes/");
            Log.d("themesDirectroyExist", themesDirectory.exists() + "");
            if (!themesDirectory.exists()) 
                Log.d("themesDir created: ", themesDirectory.mkdirs() + "");

        }
    }
}

另外,我还设置了sdcard写入权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

我已经多次运行该应用程序,每次都会得到 LogCat 输出:

01-09 21:38:13.701: D/Media State(15363): mounted
01-09 21:38:13.701: D/appDirectroyExist(15363): false
01-09 21:38:13.701: D/appDir created:(15363): false
01-09 21:38:13.701: D/dbDirectroyExist(15363): false
01-09 21:38:13.701: D/dbDir created:(15363): false
01-09 21:38:13.701: D/themesDirectroyExist(15363): false
01-09 21:38:13.701: D/themesDir created:(15363): false

我读过类似的问题,但没有得到任何有用的信息。我应该怎么做才能让代码运行?我的问题是什么?


Edited

尝试这个:

File mydir = new File(Environment.getExternalStorageDirectory() + "/mydir/");
if(!mydir.exists())
    mydir.mkdirs();
else
    Log.d("error", "dir. already exists");

并重新检查权限

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

如何在android中的sdcard中创建文件夹 的相关文章

随机推荐

  • Docker - Node.js + MongoDB - “错误:无法连接到 [localhost:27017]”

    我正在尝试为我的容器创建一个容器Node应用程序 这个应用程序使用MongoDB以确保一些数据的持久性 所以我创建了这个Dockerfile FROM ubuntu latest Installing MongoDB Add 10gen o
  • 如何在第三方库中的Eclipse中设置断点?

    我在第三方库的类中收到 NullPointerException 现在我想调试整个事情 我需要知道该类是从哪个对象中保存的 但在我看来 我无法在第三方的班级中设置断点 有谁知道摆脱我的麻烦的方法吗 当然 我使用 Eclipse 作为我的 I
  • C# Networkstream.read()

    read buffer offset length 实际上是如何工作的 如果我将读取的长度传递为 32 这是否意味着它会一直阻塞 直到收到 32 个字节 我知道如果出现套接字异常或连接关闭 它将分别返回异常或 0 如果发送方只发送 31 个
  • 如何使用 Rspec 测试 google Analytics (garb) API?

    我正在使用garb gem https github com vigetlabs garb从 Google Analytics 中获取一些基本统计数据 例如页面浏览量 一切正常 但我无法找出测试 API 调用的最佳方法 这是我的 Analy
  • 如何计算提交、树和 blob 的哈希值?

    我对如何计算提交 树和 blob 的 SHA 1 哈希值感到困惑 按照本文 https gist github com masak 2415865 提交哈希值是根据以下因素计算的 提交的源树 分解为所有子树和 blob 父提交 sha1 作
  • 存储及其锁定文件已被另一个进程锁定:/var/lib/neo4j/data/databases/graph.db/store_lock

    我做了什么 neo4j console 工作正常 ctrl C 重新启动后我收到上面的消息 我删除 var lib neo4j data databases graph db store lock 那么我有 Externally locke
  • 如何在where条件下使用case语句?

    我需要在 WHERE 子句中使用 CASE 语句 例如 WHERE p resource qry seq b resource qry seq AND p resource id b resource id AND CASE WHEN b
  • 在服务器端 Blazor 中使用 SignInManager

    是否可以使用SignInManager没有一些HTTPContext 我正在制作 Blazor 服务器端应用程序 我需要让最终用户使用以下方式登录PasswordSignInAsync 的方法SignInManager 如果有其他方法可以用
  • 使用特定顺序序列化映射

    我有一个使用字符串作为键和值的地图 我有一个键数组 用于指定映射值的顺序 我想将该映射序列化为 JSON 但保持数组上定义的顺序 这里有一个示例代码 http play golang org p A52GTDY6Wx http play g
  • MSBuild 未从导入的项目运行 BuildDependsOn 任务

    我有一个导入的 MSBuild 项目 appconfig transformation targets 它定义了一些任务并将它们放入 BuildDependsOn 属性中 我已将此文件放置在解决方案的顶级文件夹中 Projects Libr
  • 单击不同的按钮将不同的 HTML 加载到相同的 #Content DIV 中

    我有一个包含多个选项的菜单 我想知道如何将不同的 HTML 加载到相同的菜单中div 称为 content 取决于您按下的菜单按钮 我有这个菜单代码 div ul li a href Accueil a li li a href Qui s
  • 使用 t-sne 可视化从 gensim 生成的 word2vec

    我使用 gensim 在我自己的语料库上训练了 doc2vec 和相应的 word2vec 我想使用 t sne 和单词来可视化 word2vec 如图所示 图中的每个点也带有 单词 我在这里看了一个类似的问题 word2vec 上的 t
  • Windows 7 中将包含哪个 .NET 框架版本? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 有谁知道微
  • 如何从本地运行的 Spark Shell 连接到 Spark EMR

    我已经创建了一个 Spark EMR 集群 我想在本地主机或 EMR 集群上执行作业 假设我在本地计算机上运行 Spark shell 如何告诉它连接到 Spark EMR 集群 确切的配置选项和 或要运行的命令是什么 看起来其他人在这方面
  • std::unique_ptr、删除器和 Win32 API

    在VC2012中 我想使用唯一指针和删除器在构造函数中创建互斥体 这样我就不需要创建析构函数来调用CloseHandle 我本以为这会起作用 struct foo std unique ptr
  • AJAX 请求之前单击按钮的客户端验证

    我正在使用 MVC 4 我希望能够验证表中行集合中的单行 以确保正确输入字段并通过验证 属性已正确应用于模型 例如 Required MaxLength 50 MinLength 5 public string Name get set 现
  • 生成HMAC SHA256签名Python

    尝试为 3Commas 生成 HMAC SHA256 签名 我使用与官方示例 https github com 3commas io 3commas official api docs blob master rest api md exa
  • PHP Lucene - 索引 - 在 Linux 中经过 2.000.000 个系统块后失败

    我一直致力于使用 Zend Framework 最新版本创建索引 界面工作正常 其他一切都正常 我现在遇到的问题是 重新索引 或创建索引 我已经检查了其他所有内容 清理了数据并仔细检查了数据的质量 该进程总是在最有可能的记录 15 000
  • 如何通过网络发送类

    我有以下问题 我想通过线路发送类型 java lang Class 并在另一端 定义 该类 我这样尝试过 ByteArrayOutputStream bos new ByteArrayOutputStream ObjectOutputStr
  • 如何在android中的sdcard中创建文件夹

    我想在我的 SD 卡中创建文件夹 我使用了下面的代码 public class Screen extends Activity Override protected void onCreate Bundle savedInstanceSta