我正在尝试创建一个应用程序,在我的下载文件夹中搜索特定文件的最新版本,然后返回该文件的路径。当我尝试使用文件名查看文件数组或字符串数组时,我不断得到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
}
}
}
答案 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