| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  21-07-2005, 17:54 | #1 | 
| Senior Member Iscritto dal: Jan 2004 Città: ROMA 
					Messaggi: 2055
				 | 
				
				[JAVA] Dir Listing -  Assurdo!!!!
			 
		Questo piccolo programma cerca di simulare un ls -l unix, con un solo piccolo grande problema: funziona solo se i path è System.getProperty("user.dir") PERCHE'?????? è assurdo! Se creo un file con un path diverso, non c'è nulla da fare, le date e le dimensioni dei files sono rispettivamente 01-01-1970 e 0, e neanche gli attributi drw vengono visualizzati.       Codice: import java.io.*;
import java.util.Date;
import java.text.DateFormat;
public class Ls {
	public static void main(String[] args) throws IOException{
	System.out.println(System.getProperty("user.dir"));
	File f = new File(System.getProperty("user.dir"));
	//File f = new File("D:\\");
	//File f = new File("D:\\Temp");
		
	String[] fList = f.list();
	
	String[] d = new String[fList.length];
	String[] r = new String[fList.length];
	String[] w = new String[fList.length];
	
	for(int i=0; i<fList.length; ++i){
		   if(new File(fList[i]).isDirectory())
		     d[i] = "d";
		   else
		     d[i] = "-";
		
		   if(new File(fList[i]).canRead())
		     r[i] = "r";
		   else
		     r[i] = "-";
		
		   if(new File(fList[i]).canWrite())
		     w[i] = "w";
		   else
		     w[i] = "-";
	}		
	
	for(int j=0;j<fList.length;j++){
		System.out.println(d[j] + r[j] + w[j] + "xr-xr-x     root     root " +
			formatta12((new File(fList[j])).length()) +" " + 
			dataFormatter(new Date((new File(fList[j])).lastModified()))+
			"  " + fList[j]);
	}
	
	System.gc();
	}
	
	private static String dataFormatter(Date d){
		DateFormat f = DateFormat.getDateInstance(DateFormat.MEDIUM);
		return formattaData11(f.format(d));
	}
	
	private static String formattaData11(String data){
		if(data.length()==10)
			return " " + data;
		else
			return data;
	}
	
	private static String formatta12(long number){
		char[] c = new Long(number).toString().toCharArray();
		char[] ret = new char[12];
		int i = 0;
		for (;i<(12-c.length);i++)
			ret[i] =' ';
		// arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
		System.arraycopy(c,0,ret,i,c.length); 
		return new String(ret);
	}
} | 
|   |   | 
|  21-07-2005, 17:58 | #2 | 
| Senior Member Iscritto dal: Jan 2004 Città: ROMA 
					Messaggi: 2055
				 | 
		Ah, forse ho capito perchè: in fList ci sono solo i nomi dei files, e non dell'intero percorso... ma come risolvere questo problema?? | 
|   |   | 
|  21-07-2005, 18:05 | #3 | 
| Senior Member Iscritto dal: Jan 2004 Città: ROMA 
					Messaggi: 2055
				 | 
		OK, scusate ma ho risolto utilizzando il metodo  listFiles() della classe Files! Ciaooo | 
|   |   | 
|  22-07-2005, 07:13 | #4 | |
| Bannato Iscritto dal: Mar 2002 Città: Pescara - 未婚・恋人なし      Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3 
					Messaggi: 27578
				 | Quote: 
       | |
|   |   | 
|  22-07-2005, 09:15 | #5 | 
| Senior Member Iscritto dal: Jan 2004 Città: ROMA 
					Messaggi: 2055
				 | 
		e vabbè dai... tranquillo!!!!   grazie cmq | 
|   |   | 
|  22-07-2005, 09:28 | #6 | |
| Bannato Iscritto dal: Mar 2002 Città: Pescara - 未婚・恋人なし      Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3 
					Messaggi: 27578
				 | Quote: 
 | |
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 09:32.









 
		 
		 
		 
		








 
  
 



 
                        
                        










