该文件夹不是在android 10的内部内存中创建的



我的代码拥有所有必要的权限,不会在android 10上创建文件夹(写入:"创建文件夹失败"(。是什么原因造成的?请帮帮我——不要真的理解我代码中的错误。

活动(如果你需要剩下的代码,我可以把它扔掉(:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (hasPermissions()){
makeFolder();
}
else {
method for requesting permission to work with files from the user();
}
});
}
private void makeFolder(){
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath(),"Folder");
if (!file.exists()){
Boolean ff = file.mkdir();
if (ff){
Toast.makeText(MainActivity.this, "Folder created successfully", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(MainActivity.this, "Failed to create folder", Toast.LENGTH_SHORT).show();
}
}
else {
Toast.makeText(MainActivity.this, "Folder already exist", Toast.LENGTH_SHORT).show();
}
}

清单:

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

让我们简单一点。这是创建文件夹的方法调用:

makeFolder ( getFolderPath() );

获取文件夹路径的方法:

public String getFolderPath()
{
String path = new File(Environment.getExternalStorageDirectory() + "/New Folder").getPath();
return path;
}

现在创建文件夹的主要方法是:

private void makeFolder(String folderPath)
{
File file = new File(folderPath);
if (!file.exists()) {
file.mkdir();
Log.i("Folder path: " , " " + folderPath );
} else {
Log.e("Folder not created" , "Already exists!")
}
}

file.mkdirs()替换file.mkdir(),这应该可以解决您的问题。

最新更新