En algunas ocaciones necesite una saber la lista de de archivos que se encontraban dentro de un directorio y subdirectorio y guardarlos en un archivo. asi que implemente una pequeña utileriapara ello.
Creamos una nueva clase llamada ExportaTxt dentro de esta crearemos el metodo crearTxt le pasaremos como parametros un List de String y un String con la cadena y el nombre del archivo.
ahora creamos la clase ExportaPdf esta clase tendra un metodo llamado crearPdf le pasaremos como parametros la lista de archivos o directorios y la ruta con el nombre del archivo.
Creamos una clase que sera nuestro controlador esta clase contenda un medor que nos retorne una lista de los archivos ,directorios y subdirectorios. ademas se implemetaran tres metodos exportarTxt, exportarExcel y exportarPdf.
y por ultimo implementamos un pequeña interfaz.
y listo.
aqui les dejo el codigo fuente.
Requisitos
Creando el proyecto
Creamos un nuevo proyecto Java y agregamos las librerias de iText y POICreamos una nueva clase llamada ExportaTxt dentro de esta crearemos el metodo crearTxt le pasaremos como parametros un List de String y un String con la cadena y el nombre del archivo.
01 public class ExportaTxt { 02 03 public void crearTxt(ArrayList<String> list, String archivo) { 04 FileWriter fichero = null; 05 PrintWriter pw = null; 06 try { 07 fichero = new FileWriter(archivo); 08 pw = new PrintWriter(fichero); 09 for (String string : list) { 10 pw.println(string); 11 } 12 } catch (Exception e) { 13 e.printStackTrace(); 14 } 15 finally { 16 try { 17 if (fichero != null) { 18 fichero.close(); 19 } 20 } catch (Exception e) { 21 e.printStackTrace(); 22 } 23 } 24 } 25 } 26Ahora agregamos la clase exporta excel esta tendra un metodo que crearExcel al cual le pasaremos como parametros una lista de directorios, el nombre del libro y la ruta con el nombre del archivo.
01 public class ExportaExcel { 02 03 public void crearExcel(ArrayList<String> list, String libro, String archivo) { 04 HSSFWorkbook book = new HSSFWorkbook(); 05 HSSFSheet hoja = book.createSheet(libro); 06 HSSFRow fil = hoja.createRow(0); 07 HSSFCell celd = fil.createCell(0); 08 celd.setCellValue("Lista de archivos"); 09 CellStyle stilo = book.createCellStyle(); 10 stilo.setFillForegroundColor(HSSFColor.GREY_50_PERCENT.index); 11 stilo.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); 12 HSSFFont font = book.createFont(); 13 font.setFontHeightInPoints((short) 12); 14 font.setBoldweight(Font.BOLDWEIGHT_BOLD); 15 stilo.setFont(font); 16 celd.setCellStyle(stilo); 17 for (String lis : list) { 18 HSSFRow fila = hoja.createRow(list.indexOf(lis) + 1); 19 HSSFCell celda = fila.createCell(0); 20 celda.setCellValue(lis); 21 hoja.autoSizeColumn(0); 22 try { 23 FileOutputStream fichero = new FileOutputStream(archivo); 24 book.write(fichero); 25 fichero.close(); 26 } catch (Exception e) { 27 e.printStackTrace(); 28 } 29 } 30 } 31 } 32
ahora creamos la clase ExportaPdf esta clase tendra un metodo llamado crearPdf le pasaremos como parametros la lista de archivos o directorios y la ruta con el nombre del archivo.
01 public class ExportaPdf { 02 03 public void crerPdf(ArrayList<String> list, String archivo) { 04 try { 05 Document document = new Document(); 06 PdfWriter.getInstance(document, new FileOutputStream(archivo)); 07 document.open(); 08 Font font = new Font(); 09 font.setStyle(Font.BOLD); 10 PdfPTable table = new PdfPTable(1); 11 table.setWidths(new int[] {1}); 12 PdfPCell cell; 13 cell = new PdfPCell(new Phrase("lista de archivos", font)); 14 cell.setHorizontalAlignment(Element.ALIGN_CENTER); 15 table.addCell(cell); 16 for (String string : list) { 17 cell = new PdfPCell(new Phrase(string)); 18 cell.setHorizontalAlignment(Element.ALIGN_LEFT); 19 table.addCell(cell); 20 } 21 document.add(table); 22 document.close(); 23 } catch (Exception e) { 24 e.printStackTrace(); 25 } 26 27 } 28 }
Creamos una clase que sera nuestro controlador esta clase contenda un medor que nos retorne una lista de los archivos ,directorios y subdirectorios. ademas se implemetaran tres metodos exportarTxt, exportarExcel y exportarPdf.
01 public class Direc { 02 03 ArrayList lista = new ArrayList<String>(); 04 05 public ArrayList<String> getDir(String directorio) { 06 File file = new File(directorio); 07 File[] dirs = file.listFiles(); 08 for (File file1 : dirs) { 09 lista.add(file1.getName()); 10 if (file1.isDirectory()) { 11 getDir(file1.getAbsolutePath()); 12 } 13 } 14 15 return lista; 16 } 17 18 public void exportarExcel(String dir, String dondeGuardar) { 19 ArrayList<String> list = getDir(dir); 20 ExportaExcel excel = new ExportaExcel(); 21 excel.crearExcel(list, "lista de archivos", dondeGuardar + "/archivos.xls"); 22 } 23 24 public void exportarTxt(String dir, String dondeGuardar) { 25 ArrayList<String> list = getDir(dir); 26 ExportaTxt txt = new ExportaTxt(); 27 txt.crearTxt(list, dondeGuardar + "/archivos.txt"); 28 } 29 30 public void exportarPdf(String dir, String dondeGuardar) { 31 ArrayList<String> list = getDir(dir); 32 ExportaPdf pdf = new ExportaPdf(); 33 pdf.crerPdf(list, dondeGuardar + "/archivos.pdf"); 34 } 35 } 36
y por ultimo implementamos un pequeña interfaz.
y listo.
aqui les dejo el codigo fuente.