我试图创建一个应用程序,搜索我的下载文件夹的最新版本的特定文件,然后返回路径到该文件。当我尝试查看文件名的文件数组或字符串数组时,我一直得到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
}
}
}
不能用
File downloadDir = new File(Environment.DIRECTORY_DOWNLOADS);
直接。这是错误。因为环境。DIRECTORY_DOWNLOADS是字典的名称,而不是路径。你可以使用
getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS);
因为文件。长度返回到文件大小。
试试这个。
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