我想列出目錄中的所有圖像以制作畫廊。下面的示例使用 Intent 獲取目錄路徑。我已經(jīng)嘗試過該listFiles()方法,但它返回 null。protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Permision Request ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1); initialize();}//For the Intent to get Folderprivate void initialize() { Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); i.addCategory(Intent.CATEGORY_DEFAULT); startActivityForResult(Intent.createChooser(i, "Choose directory"), 9999);}public void onActivityResult(int requestCode, int resultCode, Intent data) { switch(requestCode) { case 9999: //File myFile = new File(data.getData().toString()); String path = data.getData().toString(); //View the path Log.i("Test", "Result URI " + path); Toast.makeText(getApplicationContext(), "Result URI " +data.getData().toString(), Toast.LENGTH_LONG).show(); //Creating new File for the directory File directory = new File(path); File[] files = directory.listFiles(); Log.d("Files", "Size: "+ files.length); for (int i = 0; i < files.length; i++) { //Show the name of the files in the directory Log.d("Files", "FileName:" + files[i].getName()); } break; }}在清單中我也有讀取外部存儲的權(quán)限<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
1 回答

泛舟湖上清波郎朗
TA貢獻(xiàn)1818條經(jīng)驗 獲得超3個贊
下面的示例使用 Intent 來獲取目錄路徑。
不,它是用來ACTION_OPEN_DOCUMENT_TREE
獲取文檔樹的。這可能代表也可能不代表文件系統(tǒng)上的目錄。
Uri
使用返回的最簡單方法ACTION_OPEN_DOCUMENT_TREE
是使用DocumentFile.fromTreeUri()
. 然后,您可以調(diào)用listFiles()
它來獲取DocumentFile
指向該樹中文檔(和子樹)的對象。
添加回答
舉報
0/150
提交
取消