我的android File.exists功能有一个奇怪的问题。以下是我的代码
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
super.onCreateView(inflater, container, savedInstanceState);
View view = inflater.inflate(R.layout.fragment_file_browser, container);
DataBaseHelper tmpHelper = new DataBaseHelper(getActivity());
ButtonInfoContainer infoContainer = tmpHelper.getVideoWithId(videoId);
//Tmp way to use this. When UX is finished will create a better way.
File f = new File(Environment.getExternalStorageDirectory() + "/aslkfj");
Log.i(StaticValues.TAG, Environment.getExternalStorageDirectory() + "/aslkfj");
LinearLayout tmpView2 = (LinearLayout) view.findViewById(R.id.custom_recordings);
if(f.exists());
{
Log.i(StaticValues.TAG, "f exists");
String[] tmp = f.list();
View tmpView = null;
if(tmp != null)
{
for(int i = 0; i < tmp.length; i ++)
{
tmpView = inflater.inflate(R.layout.list_item, null);
TextView tmpText = (TextView) tmpView.findViewById(R.id.product_name);
tmpText.setText(tmp[i]);
tmpView2.addView(tmpView);
}
}
}
return view;
}
一切都很酷但奇怪的部分是File.exists为我返回误报。它总是说该文件存在(虽然只是在这个应用程序中)。上面给出的路径/ aslkfj不存在,但是当我运行此代码时,我的logcat输出f存在。为什么会发生这样的事情。
答案 0 :(得分:10)
semi-colon
条件结束时您有if
: -
if(f.exists()); <-- Semi-colon here is causing problem
由于这个原因,下面的块只是一个本地块,无论你的if条件如何评估,它都会被执行。
答案 1 :(得分:6)
你有一个关键的错字:
if(f.exists());
;
基本上忽略了if
声明。
这对于快速条件非常方便:
if(f.exists())
Log.i(StaticValues.TAG, "f exists");
但是这里有一个oopies。