File.list和File.listFiles返回NULL

时间:2013-09-27 11:36:46

标签: android file

在我的应用中,用户可以下载不同的声音文件。我使用downloadManager进行此操作,一切正常。

String url = localList.get(position).guid;
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setDescription(localList.get(position).title);
request.setTitle("Downloading Podcast");

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    request.setNotificationVisibility(DownloadManager.Request.
    VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
}


request.setDestinationInExternalPublicDir("/MyAudio/",
localList.get(position).title + ".mp3");

DownloadManager manager = (DownloadManager)
v.getContext().getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);

问题是,当我尝试使用file.list或file.listfiles显示目录中的所有文件时,它返回NULL。

File f = new File("/MyAudio/");
File file[] = f.listFiles();
String filename[] = f.list();

我尝试了很多东西,例如更改文件夹名称和位置,使用request.setDestinationInExternalFileDir,使用

编写和读取文件夹
File sdCard = Environment.getExternalStorageDirectory();
String folder = sdCard.getAbsolutePath() + "/MyAudio" ;

但到目前为止没有任何帮助。我总是得到file.listFiles返回的NULL。

我使用这些权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

应该涵盖我需要的一切。

最后一点:我在arrayadapter类中编写文件,尝试从mainactivity中读取文件夹,然后在手机上看到文件夹和文件,所以我确定它们存在。

提前谢谢

0 个答案:

没有答案