Android 10 引入了一些变化,其中一个是对存储权限的更改。在 Android 10 及更高版本中,应用程序需要使用新的 API 来访问外部存储。下面是一种解决方法,使用getExternalFilesDir()
替代了已弃用的getExternalStorageDirectory()
。
import android.os.Bundle;
import android.os.Environment;
import androidx.appcompat.app.AppCompatActivity;
import java.io.File;
public class MainActivity extends AppCompatActivity {
private static final String FOLDER_NAME = "MyFolder";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
createFolder();
}
private void createFolder() {
File folder = new File(getExternalFilesDir(null), FOLDER_NAME);
if (!folder.exists()) {
if (folder.mkdirs()) {
// 文件夹创建成功
} else {
// 文件夹创建失败
}
}
}
}
在上述示例中,createFolder()
方法使用getExternalFilesDir(null)
返回应用程序的外部文件目录,FOLDER_NAME
是要创建的文件夹的名称。
在创建文件夹之前,我们首先检查文件夹是否已经存在。如果文件夹不存在,则调用folder.mkdirs()
方法创建文件夹。如果创建成功,可以在if
块中执行相应操作;如果创建失败,可以在else
块中执行相应操作。
请注意,当用户卸载应用程序时,getExternalFilesDir()
返回的目录及其内容将会被删除。如果需要存储在用户卸载应用程序后仍然保留的数据,可以考虑使用其他存储选项,如内部存储或共享存储。