Android App搜索下载特定文件的文件夹

时间:2014-03-11 00:48:31

标签: java android download-manager

我正在尝试创建一个应用程序,在我的下载文件夹中搜索特定文件的最新版本,然后返回该文件的路径。当我尝试使用文件名查看文件数组或字符串数​​组时,我不断得到NullPointerException。当我拨打downloadList.length;时,会出现零点。我也试过while(download[i] != null) {,但我仍然得到NullPointerException。我是应用程序编程的新手,并且已经构建了一些应用程序,但它们都没有访问公共文件。非常感谢任何帮助。

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String dlDir = Environment.DIRECTORY_DOWNLOADS;
        Log.d("Dir", dlDir);
        File downloadDir = new File(dlDir);
        Log.d("Dir", "Found the Directory");
        String[] downloadList = downloadDir.list();
        // File[] downloadList = downloadDir.listFiles();
        Log.d("Dir", "Created the list");
        int len = downloadList.length;
        while (int i = 0; i < len; i++) {
            DoStuff
        }
    }
}

2 个答案:

答案 0 :(得分:1)

你不能使用

File downloadDir = new File(Environment.DIRECTORY_DOWNLOADS);

直接。这是错误的。 因为Environment.DIRECTORY_DOWNLOADS是字典的名称,而不是路径。您可以使用

getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS);

代替你的活动。

答案 1 :(得分:0)

因为File.length返回文件大小。
试试这个。

String[] filelist = downloadDir.list();
filelist.length;

ArrayList<String> fileList = new ArrayList( Arrays.asList( downloadDir.list() ) );
flieList.size();

ArrayList<String> fileList;
Collections.addAll( fileList, downloadDir.list() );
fileList.size();

您可以帮助此页面。 http://developer.android.com/reference/java/io/File.html