即使在android中获得了文件夹中的文件和权限,也无法获得文件夹目录中的文件



即使在android中获得了权限,我也无法获得文件目录。我放了

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

清单文件中。我添加了

CCD_ 1。

权限窗口弹出,并在应用程序中允许权限。我仍然得到**目录,但文件数量为零。

这是我的完整代码。

public class MainActivity extends AppCompatActivity {
private Handler handler = new Handler();
ArrayList<Object> filesList = new ArrayList<>();
public static final int GALLERY_PERMISSION_CODE = 1002;
private File[] files;
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i("Omm","GalleryPermission before");
GalleryPermission();
Log.i("Omm","GalleryPermission after");
StringBuilder sb = new StringBuilder();
sb.append(Environment.getExternalStorageDirectory());
sb.append(File.separator);
sb.append("ABC/Media/.abc");
Log.i("Omm"," STATUS_DIR before");
File STATUS_DIR = new File(sb.toString());
Log.i("Omm"," STATUS_DIR after "+ sb.toString() );
Log.i("Omm", "dir exists = "+STATUS_DIR.exists());

/****CALLING FUNCTION************/
getData();
/****CALLING FUNCTION************/
}
@RequiresApi(api = Build.VERSION_CODES.M)
private void GalleryPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED
&& checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) {
String[] galleryPermissions = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
requestPermissions(galleryPermissions, GALLERY_PERMISSION_CODE);
} else {
}
} else {
}
}

private ArrayList<Object> getData() {
StringBuilder sb = new StringBuilder();
sb.append(Environment.getExternalStorageDirectory());
sb.append(File.separator);
sb.append("Abc/Media/efg");//Consider this folder exits and 
//contains data.
Log.i("Omm", "ArrayList inovked");
StoryModel f;

String targetPath = sb.toString();
File targetDirector = new File(targetPath);
files = targetDirector.listFiles();
/**************I AM GETTING FILESLENGTH AS ZERO*****BUT I HAVE FILE IN THAT DIRECTORY**************/
Log.i("Omm", "Files = "+files.length);
/**************I AM GETTING FILESLENGTH AS ZERO*****BUT I HAVE FILE IN THAT DIRECTORY**************/
if (files == null) {
Log.i("Omm", "Null");
}
try {
for (int i = 0; i < files.length; i++) {
File file = files[i];
f = new StoryModel();
f.setName("NBM Story Saver: " + (i + 1));
f.setUri(Uri.fromFile(file));
f.setPath(files[i].getAbsolutePath());
f.setFilename(file.getName());
filesList.add(f);
}
} catch (Exception e) {
e.printStackTrace();
}
/**************I AM GETTING FILESLIST AS ZERO*****BUT I HAVE FILE IN THAT DIRECTORY**************/
Log.i("Omm", "dir exists = "+filesList.size());
/**************I AM GETTING FILESLIST AS ZERO*****BUT I HAVE FILE IN THAT DIRECTORY**************/
return filesList;
}
}

我刚刚在<application>标签的AndroidMainfest.xml中添加了android:requestLegacyExternalStorage="true"

它运行良好。

最新更新