DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   Java (http://www.daniweb.com/forums/forum9.html)
-   -   Recursive File List - Help me problem solve please (http://www.daniweb.com/forums/thread167285.html)

~s.o.s~ Jan 12th, 2009 12:59 am
Re: Recursive File List - Help me problem solve please
 
> but i dont think it has had any change in the list of results brought
> to the terminal window

And what were you expecting by checking if the file size is less than or equal to one byte?

Maybe posting/uploading a virtual directory structure along with the expected output might help others in collaborating for a better solution.

masijade Jan 12th, 2009 2:49 am
Re: Recursive File List - Help me problem solve please
 
I'm fairly sure you meant "files.length" and not "f.length()".

Edit: Not that that matters though. Once the loop is done, the method will return anyway.

caps_lock Jan 13th, 2009 6:46 pm
Re: Recursive File List - Help me problem solve please
 
hello again i tried your advice erm no difference I think

I dont quite understand how not to make "the method not return anyway"

Please may someone help me to get files of the same size listed on screen or put into an array (both if possible).

Heres what ive tried so far, (also take a look at the commented out code)

import java.io.*;
import java.util.*;

public class scanner {

public static void main(String[] args) {
        for(File file : File.listRoots()){
            search(file);
          // duplicate(file);
        }
    }

public static void search(File f)
{
    //if (!f.exists()) return;
  // String name = f.getName();
  // System.out.println(name);
  //  if (duplicate(f)) System.out.println(f);
    if ( f.isDirectory() ) {
        File[] files = f.listFiles();
        //if (files.length == files.length) return; {
        for( int i = 0 ; i < files.length; i++ ) {
            if (files[i].length() == files[i].length()) {
        search( files[i] );
            //if (files[i].length() == files[i].length()) return;   
              System.out.println(files[i]); 
            } } } }
           
       

//public static void duplicate(File file)
//{

  //if (file.length() == file.length()) return; 
  //    }
}

please please help..

caps_lock Jan 14th, 2009 7:47 am
Re: Recursive File List - Help me problem solve please
 
so just to add more detail because theyre may be confusion

Im basically trying to get files with equal file size first, then im trying to put those in an array, then the files in the array need to be compared possibily by length (bytes) (not file names but files contents), the comparison need to be made maybe by binary contents or by generating an MD checksum which ever ones easier.

masijade Jan 14th, 2009 7:58 am
Re: Recursive File List - Help me problem solve please
 
And I told you that sort of thing would be a lot more work. Good luck with that, we are not going to write it for you.

For arrays:
http://java.sun.com/docs/books/tutor...ts/arrays.html

For Collections (which would be better):
http://java.sun.com/docs/books/tutor...ons/index.html

~s.o.s~ Jan 14th, 2009 8:42 am
Re: Recursive File List - Help me problem solve please
 
Quote:

Originally Posted by caps_lock (Post 778056)
so just to add more detail because theyre may be confusion

Im basically trying to get files with equal file size first, then im trying to put those in an array, then the files in the array need to be compared possibily by length (bytes) (not file names but files contents), the comparison need to be made maybe by binary contents or by generating an MD checksum which ever ones easier.

Like it has already been mentioned by masijade, you have to make a stab at this and post again if you have any problems. Just putting in random conditional statements here and there won't cut in. Since you already seem to know the logic, you can at least try implementing it.

caps_lock Jan 14th, 2009 9:04 am
Re: Recursive File List - Help me problem solve please
 
i just thought you guys would of liked a challenge lol

thanks anyways

~s.o.s~ Jan 14th, 2009 9:10 am
Re: Recursive File List - Help me problem solve please
 
> i just thought you guys would of liked a challenge lol

I have got enough challenges in my daily life, I guess I'll just pass. :-)

But don't give up hope, who knows, masijade might just end up dropping in a jar file here with a "meh" look on his face. ;-)

caps_lock Jan 14th, 2009 3:25 pm
Re: Recursive File List - Help me problem solve please
 
why when i compile this code now i only get a list of folders and .sqm files and .log file and a .txt file and an .exe file. Ive got this list of files from d and c drive

import java.io.*; 
import java.util.*;
import java.*;

import java.io.*;
import java.util.*;
 
public class DeleteSameFilesAttempt9x10 {
public static void main(String[] args) {
        for(File file : File.listRoots()){
            search(file);
        }
    }

 
   
    public static void search(File f) {
        if ( !f.exists() ) return;
        String name = f.getName();
        System.out.println(name);
        if ( f.isDirectory() ) {
        File[] files = f.listFiles();
        if (files != null) {
        for( int i = 0 ; i < files.length; i++ ) {
        samesize( files[i], files[i] ); {
           
            System.out.println(files[i]);
   
        } 

   
           
        }
    }
 
}
}

public static void samesize (File filey, File filex) {
  if (filey != null) if (filex !=null)
  {
      if (filey.length() == filex.length()) return;
  String name1 = filey.getName();
  String name2 = filex.getName();
  System.out.println(name1 + name2);
            }
        }
    }

Ezzaral Jan 14th, 2009 4:00 pm
Re: Recursive File List - Help me problem solve please
 
I don't even understand what you mean by that question. Your code is only processing the top level of each root entry and only then if it's a directory.


All times are GMT -4. The time now is 12:02 pm.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC