How can I get the number of files in the sketch folder?
Second Question
Is it possible to get the number of files in the desktop?
Thanks.
How can I get the number of files in the sketch folder?
Second Question
Is it possible to get the number of files in the desktop?
Thanks.
How about this hacky solution
String[] listFileNames(String dir) {
File file = new File(dir);
if (file.isDirectory()) {
String names[] = file.list();
return names;
} else {
// If it's not a directory
return null;
}
}
void getNumberOfFiles(String dir) {
return listFileNames(dir).length
}
From somewhere of the examples
Sorry mate I don’t understand the solution. I haven’t found anything about this in reference webpage of processing;
“File file = new File(dir);”
Can you send the whole example code or something?
File file = new File(dir);
is from Java. Here you find the Java reference for the File object. Processing is built on top of Java, so (almost) everything that works in Java can be done in Processing.
/**
* Listing files in directories and subdirectories
* by Daniel Shiffman.
*
* This example has three functions:<br />
* 1) List the names of files in a directory<br />
* 2) List the names along with metadata (size, lastModified)<br />
* of files in a directory<br />
* 3) List the names along with metadata (size, lastModified)<br />
* of files in a directory and all subdirectories (using recursion)
*/
import java.util.Date;
void setup() {
// Using just the path of this sketch to demonstrate,
// but you can list any directory you like.
String path = sketchPath();
println("Listing all filenames in a directory: ");
String[] filenames = listFileNames(path);
printArray(filenames);
println("\nListing info about all files in a directory: ");
File[] files = listFiles(path);
for (int i = 0; i < files.length; i++) {
File f = files[i];
println("Name: " + f.getName());
println("Is directory: " + f.isDirectory());
println("Size: " + f.length());
String lastModified = new Date(f.lastModified()).toString();
println("Last Modified: " + lastModified);
println("-----------------------");
}
println("\nListing info about all files in a directory and all subdirectories: ");
ArrayList<File> allFiles = listFilesRecursive(path);
for (File f : allFiles) {
println("Name: " + f.getName());
println("Full path: " + f.getAbsolutePath());
println("Is directory: " + f.isDirectory());
println("Size: " + f.length());
String lastModified = new Date(f.lastModified()).toString();
println("Last Modified: " + lastModified);
println("-----------------------");
}
noLoop();
}
// Nothing is drawn in this program and the draw() doesn't loop because
// of the noLoop() in setup()
void draw() {
}
// This function returns all the files in a directory as an array of Strings
String[] listFileNames(String dir) {
File file = new File(dir);
if (file.isDirectory()) {
String names[] = file.list();
return names;
} else {
// If it's not a directory
return null;
}
}
// This function returns all the files in a directory as an array of File objects
// This is useful if you want more info about the file
File[] listFiles(String dir) {
File file = new File(dir);
if (file.isDirectory()) {
File[] files = file.listFiles();
return files;
} else {
// If it's not a directory
return null;
}
}
// Function to get a list of all files in a directory and all subdirectories
ArrayList<File> listFilesRecursive(String dir) {
ArrayList<File> fileList = new ArrayList<File>();
recurseDir(fileList, dir);
return fileList;
}
// Recursive function to traverse subdirectories
void recurseDir(ArrayList<File> a, String dir) {
File file = new File(dir);
if (file.isDirectory()) {
// If you want to include directories in the list
a.add(file);
File[] subfiles = file.listFiles();
for (int i = 0; i < subfiles.length; i++) {
// Call this function on all files in this directory
recurseDir(a, subfiles[i].getAbsolutePath());
}
} else {
a.add(file);
}
}
The example was located in Examples => Topics => File IO => Directory List (On Java Mode, on Python mode simply use the os
module and os.listdir()
.)