Android, How Do How to Get a List of All Files in a Folder

How to list files in an android directory?

In order to access the files, the permissions must be given in the manifest file.

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Try this:

String path = Environment.getExternalStorageDirectory().toString()+"/Pictures";
Log.d("Files", "Path: " + path);
File directory = new File(path);
File[] files = directory.listFiles();
Log.d("Files", "Size: "+ files.length);
for (int i = 0; i < files.length; i++)
{
Log.d("Files", "FileName:" + files[i].getName());
}

Android: How to list all the files in a directory in to an array?

I think the problem you are facing is related to the external storage directory file path. Don't use whole path as variable if you can access with environment.

String path = Environment.getExternalStorageDirectory().toString()+"/images/scenes"; 

Also, you can use the API listfiles() with file object and it will work. For eg ::

File f = new File(path);        
File file[] = f.listFiles();

Android, how do can I get a list of all files in a folder?

To list all the names of your raw assets, which are basically the filenames with the extensions stripped off, you can do this:

public void listRaw(){
Field[] fields=R.raw.class.getFields();
for(int count=0; count < fields.length; count++){
Log.i("Raw Asset: ", fields[count].getName());
}
}

Since the actual files aren't just sitting on the filesystem once they're on the phone, the name is irrelevant, and you'll need to refer to them by the integer assigned to that resource name. In the above example, you could get this integer thus:

int resourceID=fields[count].getInt(fields[count]);

This is the same int which you'd get by referring to R.raw.whateveryounamedtheresource

List all the files from all the folders in a single list

Try this:

 .....
List<File> files = getListFiles(new File("YOUR ROOT"));
....
private List<File> getListFiles(File parentDir) {
ArrayList<File> inFiles = new ArrayList<File>();
File[] files = parentDir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
inFiles.addAll(getListFiles(file));
} else {
if(file.getName().endsWith(".csv")) {
inFiles.add(file);
}
}
}
return inFiles;
}

Or a variant without recursion:

private List<File> getListFiles2(File parentDir) {
List<File> inFiles = new ArrayList<>();
Queue<File> files = new LinkedList<>();
files.addAll(Arrays.asList(parentDir.listFiles()));
while (!files.isEmpty()) {
File file = files.remove();
if (file.isDirectory()) {
files.addAll(Arrays.asList(file.listFiles()));
} else if (file.getName().endsWith(".csv")) {
inFiles.add(file);
}
}
return inFiles;
}

How get all files in folder in Java

This might work:

    ArrayList<String> result = new ArrayList<String>(); //ArrayList cause you don't know how many files there is
File folder = new File("PATH/TO/YOUR/FOLDER/AS/STRING"); //This is just to cast to a File type since you pass it as a String
File[] filesInFolder = folder.listFiles(); // This returns all the folders and files in your path
for (File file : filesInFolder) { //For each of the entries do:
if (!file.isDirectory()) { //check that it's not a dir
result.add(new String(file.getName())); //push the filename as a string
}
}

return result;

How to browse all files in a specific directory?

Create an instance of Folder from the absolute path and use .getEntities() method to read list of files / folders within the particular folder.

import { Folder } from "tns-core-modules/file-system";

const androidPicturesPath = android.os.Environment.getExternalStoragePublicDirectory(
android.os.Environment.DIRECTORY_PICTURES
).toString();

const folder = Folder.fromPath(androidPicturesPath);

folder.getEntities()
.then((entities) => {
// entities is an array of files and folders.
entities.forEach((entity) => {
console.log(entity.name);
});
}).catch((err) => {
// Failed to obtain folder's contents.
console.log(err);
});

Note: Make sure your app has READ_EXTERNAL_STORAGE permission, use nativescript-permissions plugin to acquire the permission at run time.



Related Topics



Leave a reply



Submit