作者版本:Android 11及以上
主要是發現網上沒有完整的、能跑的代碼,不知道怎么回事,GPT給我重寫的。我只能保證這個代碼尊嘟能跑,不像其他的缺胳膊少腿的。
asserts
貼一下結果:
boolean isAssertFileExists(String filename) {AssetManager assetManager = getActivity().getAssets();try {String[] files = assetManager.list("");for (String file : files) {if (file.equals(filename)) {return true;}}} catch (IOException e) {e.printStackTrace();}return false;}
需要引入的頭文件:
import java.io.IOException;
import android.content.res.AssetManager;
可以看到能正常判斷:
其他外部文件或者data下的文件
如果是常規文件只需要用new File(filepath).exists()
就行了。寫成函數如下:
boolean checkFileExists(String dirname, String filename) {File file = new File(dirname, filename);return file.exists();}
有個人寫了但是他那個代碼沒有getActivity()導致getAssets沒定義,見android判斷asses文件是否存在。
如果找不到自己的軟件包存的文件的路徑,可以看看這篇博客Android 保存文件路徑方法。