Results 1 to 18 of 18
Thread: folder-subfolders, get data
- 11-05-2009, 07:07 PM #1
Member
- Join Date
- Jul 2009
- Posts
- 30
- Rep Power
- 0
folder-subfolders, get data
hi everyone,
i'm having the following problem:
i've got a folder (directory C:\Schoolschaak), where my program adds subfolders which have all specified names. In those subfolders, there are some txt files with all the same names (like Name.txt, Age.txt,...)..
now my question is if there is a function which searches in this directory (C:\Schoolschaak) and returns a list of all subfolders in an array?
thanks anyway,
Questionmark =)
- 11-05-2009, 07:52 PM #2
Review: File
Java Code:File.listFiles(...);
Java Code:File.isDirectory();
My Hobby Project: LegacyClone
- 11-05-2009, 08:45 PM #3
Member
- Join Date
- Jul 2009
- Posts
- 30
- Rep Power
- 0
thanks, but i don't really understand, with this method i can get files and folders, but i need only the names of the folders... or am i just missing it? :p
- 11-06-2009, 01:50 AM #4
yea, you get the names from the File object returned in the array of results as mrmatt1111 said , with the File.getName() method
Java Code:/** gets an array of string folder names of things inside a folder that are subdirectories public String[] getChildFolderNames(String startFolder) { List<String> folderNames = new ArrayList<String>(); File aFolder = new File(startFolder); File[] allFiles = aFolder.listFiles(); for (File f : allFiles) { if (f.isDirectory()) { folderNames.add(f.getName()); } } return (String[]) folderNames.toArray(new String[0]); }
- 11-06-2009, 08:47 AM #5
Member
- Join Date
- Jul 2009
- Posts
- 30
- Rep Power
- 0
ooh i see xD
thanks a LOT ^^ :D
- 11-06-2009, 09:24 AM #6
Senior Member
- Join Date
- Aug 2009
- Posts
- 2,388
- Rep Power
- 6
- 11-06-2009, 02:13 PM #7
Member
- Join Date
- Jul 2009
- Posts
- 30
- Rep Power
- 0
i did... just don't understand the return types of the list functions...
this piece of code stops adding Strings to the array when 1 subfolder has been found, so I have understood and edited the code... it's not that i didn't do the effort of reading that link, it's just that i'm a kid of 15 years old, not speaking English as a motherstongue, trying to program java and not able to understand all explications that have been given...
- 11-06-2009, 02:22 PM #8
Senior Member
- Join Date
- Aug 2009
- Posts
- 2,388
- Rep Power
- 6
What did you edit it to do? Care to share what you did?
- 11-06-2009, 02:41 PM #9
Member
- Join Date
- Jul 2009
- Posts
- 30
- Rep Power
- 0
it doesn't work as i want it to, it gives still an error, but i'm working on it.
something like this, but it's one complete mess. doesn't work at all, but only have been busy 20 mins :p tonight i'll try harder =)
public static String[] getChildFolderNames(String startFolder) {
List<String> folderNames = new ArrayList<String>();
File aFolder = new File(startFolder);
File[] allFiles = aFolder.listFiles();
int numberOfFiles = allFiles.length;
File[] f;
int i = 0;
f = aFolder.listFiles();
do{
i++;
if (f[i].isDirectory()) {
folderNames.add(f[i].getName());
subfoldersindir ++;
}
}while (i<numberOfFiles);
return (String[]) folderNames.toArray(new String[0]);
}
public static int GetNOFID() {
int returnint = subfoldersindir;
subfoldersindir = 0;
return subfoldersindir;
}
}
- 11-06-2009, 02:42 PM #10
Member
- Join Date
- Jul 2009
- Posts
- 30
- Rep Power
- 0
ignore the GetNOFID ^^
- 11-06-2009, 05:06 PM #11
Senior Member
- Join Date
- Aug 2009
- Posts
- 2,388
- Rep Power
- 6
If you want to get all folders and sub folders then think recursion.
- 11-08-2009, 02:12 PM #12
Member
- Join Date
- Jul 2009
- Posts
- 30
- Rep Power
- 0
hey, good idea :D i'll give it a try :)
- 11-08-2009, 03:34 PM #13
Member
- Join Date
- Jul 2009
- Posts
- 30
- Rep Power
- 0
hmm, did it without recursion ;)
it was the list that gave a lot of errors, probably me not understanding the list completely :p but i changed the list into an array of Strings and the returntype into String[], and changed a few things, like the condition of the for loop, and now it works =)
Java Code:public static String[] getChildFolderNames(String startFolder) { subfoldersindir = 0; String[] folderNames = {null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null}; File aFolder = new File(startFolder); File[] allFiles = aFolder.listFiles(); int i = 0; int a = 0; int numberOfFiles = allFiles.length; File[] f = allFiles; for (i=0; i<numberOfFiles; i++) { if (f[i].isDirectory()) { folderNames[a] = f[i].getName(); subfoldersindir ++; a++; } } return folderNames;Last edited by Questionmark; 11-08-2009 at 06:14 PM. Reason: [code]
- 11-08-2009, 03:37 PM #14
Member
- Join Date
- Jul 2009
- Posts
- 30
- Rep Power
- 0
don't mention the values of 'folderNames', it gave errors (out of bounds) ^^
-
Another way to get just folders is to use a FileFilter:
Java Code:public static File[] getSubDirectories(File file) { FileFilter filter = new FileFilter() { public boolean accept(File pathname) { if (pathname == null) { return false; } return pathname.isDirectory(); } }; return file.listFiles(filter); }
-
- 11-08-2009, 06:17 PM #17
Member
- Join Date
- Jul 2009
- Posts
- 30
- Rep Power
- 0
- 11-08-2009, 06:27 PM #18
Member
- Join Date
- Jul 2009
- Posts
- 30
- Rep Power
- 0
i need a function that returns the names of the folders, so if you work this example out to a function that returns an array of Strings, you'll have the same outofboundsexception, and in my case to make it work I just added those null values... is there another way to have my code without the null values?
Similar Threads
-
bin and lib folder
By sdkanhere in forum New To JavaReplies: 1Last Post: 10-07-2009, 04:46 PM -
Data Pipeline 2 - Data Transformation Toolkit for Java Released
By dele in forum Java SoftwareReplies: 0Last Post: 10-31-2008, 02:13 PM -
Data Sorting in a .data file using java
By stutiger99 in forum New To JavaReplies: 2Last Post: 10-08-2008, 02:52 AM -
How do we "Loop" through subfolders to delete files?
By Zrob in forum New To JavaReplies: 3Last Post: 09-26-2008, 06:05 PM -
How to create folder(s) and store data?
By Grom in forum New To JavaReplies: 2Last Post: 08-20-2008, 09:01 AM


LinkBack URL
About LinkBacks
Reply With Quote

Bookmarks