Newsgroup: it.comp.java
Titolo: Spazio su disco a partire dai file di ciascuna directory

import java.io.File;
public class CalcoloSpazioSuDisco {
	public static void  controlloSpazio()
	{
		File[] files = File.listRoots();
		long size = 0;
		try {
			System.out.println("le root sono "+ files.length);
			for(int j = 0; j < files.length; j++)
				{		//si vuole calcolare la lista dei file contenuti in ogni
directory
						File fileDelleRoot = new File(files[j].getPath());
						//AVRO' LA LISTA DI C:\\ E DI D:\\
						File[] fileRoot=fileDelleRoot.listFiles();
								if (fileRoot!=null)
								{
											for(int i = 0; i < fileRoot.length; i++) {
												System.out.println(fileRoot[i].getPath());
											}
								}
				}
			}
		 catch (Exception e) {
			e.printStackTrace();
		}
	}
	public static void getFileorFolderSize(File file){
		long lung=file.length();
		System.out.println("length "+String.valueOf(lung));
	}
	public static void main(String[] args) {
		controlloSpazio();
		//controllo per C
		File files = new File("C:\\");
		System.out.println("Path "+files.getPath());
		File[] fileRoot=files.listFiles();
		for(int i = 0; i < fileRoot.length; i++) {
			System.out.println(fileRoot[i].getPath());
		}
	}
public long calcoloSizeFile(){
................
................
.............
}
}

 
bel post:chiaro...
fa proprio venir voglia di risponderti
2Nd+BESt

package Scompattazione;
import java.io.File;
import java.util.ArrayList;
public class CalcoloSpazioSuDisco {
	public static void  controlloSpazio()
	{
		File[] files = File.listRoots();
		ArrayList[] arr=new ArrayList[files.length];
		long lungTot=0;
		int i;
		int j;
		try {
			System.out.println("le root sono "+ files.length);
			for(j = 0; j < files.length; j++)
				{
						//si vuole calcolare la lista dei file contenuti in ogni
directory
						File fileDelleRoot = new File(files[j].getPath());
						String nomeDir=fileDelleRoot.toString();
						System.out.println("nomeDir "+fileDelleRoot.toString());
						//AVRO' LA LISTA DI C:\\ E DI D:\\ ...
						File[] fileRoot=fileDelleRoot.listFiles();
								if (fileRoot!=null)
								{lungTot=0;
											for(i=0; i < fileRoot.length; i++) {
												lungTot=lungTot+(fileRoot[i].getAbsolutePath().length()+lungTot);
												System.out.println(fileRoot[i].getPath()+" lung
"+String.valueOf(fileRoot[i].length()));
											}
											//System.out.println("tot di "+fileRoot[i].getPath());
											System.out.println("i= "+i);
											Object a=(Object)String.valueOf(lungTot);
											System.out.println("nell'array di: "+nomeDir+" ci sono byte
"+a.toString());
											System.out.println("j= "+j);
											try {
												arr[j].add(a.toString());
											} catch (Exception e) {
												e.getMessage();
											}
								}
								 try {
								     System.out.println("Riepilogando in array
"+arr[j].toString());
									} catch (Exception e) {
										e.getMessage();
									}
				}
			}
		 catch (Exception e) {
			e.printStackTrace();
		}
	}
	public static void getFileorFolderSize(File file){
		long lung=file.length();
		System.out.println("length "+String.valueOf(lung));
	}
	public static void main(String[] args) {
		controlloSpazio();
		/*controllo per C
		File files = new File("C:\\");
		System.out.println("Path "+files.getPath());
		File[] fileRoot=files.listFiles();
		for(int i = 0; i < fileRoot.length; i++) {
			fileRoot[i].getPath().length();
			System.out.println(fileRoot[i].length());
			System.out.println(fileRoot[i].getPath());
		}*/
	}
}
Lo scopo finale di questa procedura incasinata è verificare quanto
spazio libero vi è su un disco specificato. Ma in conclusione non
raggiungo l'obbiettivo perchè la length sui file a volte non funziona,
e poi perchè resta il problema di determinare la capacità totale del
disco, per fare la differenza con i file delle sottodirectory.
Qualcuno può aiutarmi. Grazie

 Qualcuno può aiutarmi. Grazie
Spiacente, il team di sviluppo di Java ha deciso di includere il supporto
per la rilevazione dello spazio disponibile solo da J2SE 6.0 (codename:
Mustang) in avanti.
Attualmente questo ambiente è in fase beta (b45 del 28 luglio), se vuoi
provarlo puoi scaricarlo da qui (installazione e documentazione):
http://www.java.net/download/jdk6/binaries/
mentre la documentazione online la puoi consultare direttamente da qui:
http://www.java.net/download/jdk6/docs/api/
Le nuove API di tuo interesse si trovano all'interno della classe
java.io.File:
http://www.java.net/download/jdk6/docs/api/java/io/File.html
long getTotalSpace()
long getFreeSpace()
long getUsableSpace()
Questi metodi vanno richiamati su un oggetto File che rappresenti un'entità
esistente e raggiungibile (file o directory). Le informazioni restituite
riguardano la partizione su cui risiede la directory o il file rappresentati
dall'oggetto in questione.
-- 
Fermiamo Scientology prima che sia troppo tardi!!!
http://xenu.com-it.net
 - 
http://www.xenu.net
 - 
http://www.xenu.net/
(per rispondere personalmente leva IlDitoDalCulo)