Listato 5. Incapsula le operazioni effettuate sul file system
//FileManagerConcrete.javapackage
it.html.file;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Collection;
import java.util.Iterator;
import org.apache.commons.fileupload.FileItem;
public class FileManagerConcrete implements FileManager {
//Tutte le operazioni vengono effettuate a partire da questa directory
private String root;
public FileManagerConcrete(String root){
this.root=root;
}
public void createAccount(String user) throws IOException {
//Creazione del path
String directory=root+File.separator+user;ù
File f=new File(directory);
//Creazione della directory sul disco (lato server)
f.mkdirs();
}
public void insert(String user, String dir, Collection items) throws Exception {
//Creazione del path
String directory=root+File.separator+user;
//se DIR è vuoto, ci troviamo nella directory root
if (dir!=null && !dir.equals(""))
directory+=File.separator+dir;
//Iteriamo sulla lista
Iterator it = items.iterator();
//Per ogni item, salviamo un file
while(it.hasNext()) {
FileItem item = (FileItem) it.next();
if(!item.isFormField()) {
//Creazione file lato server
File tmp = new File(directory, item.getName());
//Salvataggio dati
item.write(tmp);
}
}
}
public File[] getFileList(String user, String dir) throws IOException {
//Creazione del path
String directory=root+File.separator+user;
//se DIR è vuoto, ci troviamo nella directory root
if (dir!=null && !dir.equals(""))
directory+=File.separator+dir;
File f=new File(directory);
return f.listfile();
}
}