【问题标题】:Create a file inside a new folder in sdcard在 sdcard 的新文件夹中创建一个文件
【发布时间】:2020-04-27 15:24:13
【问题描述】:

我试图在我的 sdcard 目录中创建一个新文件和一个新文件夹,但没有任何进展。我尝试了不同的代码,但没有人工作。这是我尝试过的最后一个代码:

package dev.lordwalrus.alita;

import android.os.Bundle;
import android.os.Environment;

import androidx.appcompat.app.AppCompatActivity;

import java.io.File;

public class MainActivity extends AppCompatActivity {

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

        try {
            File newFolder = new File(Environment.getExternalStorageDirectory(), "TestFolder");
            if (!newFolder.exists()) {
                newFolder.mkdir();
            }

            File file = new File(newFolder, "MyTest" + ".txt");
            file.createNewFile();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }
}

显然我已经在我的 android 清单中添加了写入和读取外部存储的权限:

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

我使用的是 android min sdk 版本 21。

非常感谢!

【问题讨论】:

  • 在哪里向用户询问权限?
  • 是的,我不知道我必须向用户征求许可

标签: android file path android-sdcard createfile


【解决方案1】:

对于 Android 6.0+,您应该手动请求权限。请参阅this 了解更多信息。声明本身并不能保证您可以将任何内容写入外部存储。此外,从 Android 10 开始,您还应该指定 FileProvider。参考this

【讨论】:

  • 很高兴它有帮助。你可以标记这个答案和正确的答案并投票:) 谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-28
  • 1970-01-01
  • 1970-01-01
  • 2021-05-29
  • 2012-06-25
相关资源
最近更新 更多