Diferència entre revisions de la pàgina «M3 - Programació estructurada / Activitats UF3: Clase File»

De wikiserver
Dreceres ràpides: navegació, cerca
Línia 77: Línia 77:
 
<pre>
 
<pre>
  
 +
package m3.file;
 +
 +
import java.io.File;
 +
import java.util.Scanner;
 +
 +
public class LlistarFitxersMida {
 +
 +
    public static final int KB = 1024;
 +
 +
    public static void main(String[] args) {
 +
        LlistarFitxersMida programa = new LlistarFitxersMida();
 +
        programa.inici();
 +
    }
 +
 +
    public void inici() {
 +
        File rutaCarpeta = llegirNomCarpeta();
 +
        mostraFitxers(rutaCarpeta, 500);
 +
    }
 +
 +
    /**
 +
    * Pregunta a l'usuari el nom de la carpeta, i d'aquest obté una ruta.
 +
    *
 +
    * @return La ruta associada al text que ha escrit l'usuari.
 +
    */
 +
    public File llegirNomCarpeta() {
 +
        File f = null;
 +
        boolean preguntar = true;
 +
        Scanner lector = new Scanner(System.in);
 +
        while (preguntar) {
 +
            System.out.println("Escriu el nom d'una ruta a una carpeta: ");
 +
            String nomCarpeta = lector.nextLine();
 +
            f = new File(nomCarpeta);
 +
            if (f.isDirectory()) {
 +
                preguntar = false;
 +
            } else {
 +
                System.out.println("Aquesta carpeta no existeix...");
 +
            }
 +
        }
 +
        return f;
 +
    }
 +
 +
    /**
 +
    * Mostra els fitxers dins una carpeta que tenen una mida mínima.
 +
    *
 +
    * @param f La ruta que cal processar.
 +
    * @param mida La mida mínima dels fitxers a llistar (en Kb).
 +
    */
 +
    public void mostraFitxers(File f, int mida) {
 +
        File[] elements = f.listFiles();
 +
        System.out.println("Els fitxers de més de 500 Kb són:");
 +
        for (int i = 0; i < elements.length; i++) {
 +
         
 +
            if (elements[i].isFile()) {
 +
             
 +
                if (elements[i].length() > 500 * KB) {
 +
                    System.out.println(elements[i].getName());
 +
                }
 +
            }
 +
        }
 +
    }
 +
}
 +
</pre>
 +
-->
 +
 +
4. Feu un programa que pregunti per pantalla el nom (o part del nom) d'un fitxer i la ruta a una carpeta. Aquestes dades les introduirà l'usuari pel teclat. Llavors el programa ha de cercar i mostrar per pantalla la ruta absoluta de tots els fitxers amb aquest nom a partir de la carpeta assenyalada (tant directament dintre seu com dins d'altres carpetes successives).
 +
 +
<!--
 +
<pre>
 +
**************
 
package m3.file;
 
package m3.file;
  
Línia 150: Línia 219:
 
         return f;
 
         return f;
 
     }
 
     }
</pre>
 
-->
 
 
4. Feu un programa que pregunti per pantalla el nom (o part del nom) d'un fitxer i la ruta a una carpeta. Aquestes dades les introduirà l'usuari pel teclat. Llavors el programa ha de cercar i mostrar per pantalla la ruta absoluta de tots els fitxers amb aquest nom a partir de la carpeta assenyalada (tant directament dintre seu com dins d'altres carpetes successives).
 
 
<!--
 
<pre>
 
 
</pre>
 
</pre>
 
-->
 
-->

Revisió del 12:38, 8 abr 2019

Nota: No tots els mètodes de la classe File estan descrits en els apunts. Necessitaràs fer servir algun més. Consulta la informació d’aquests a: documents oracle - File


1. Feu un programa que actuï de manera diferent segons si existeix o no una carpeta anomenada “Temp” a la carpeta de treball. Si no existeix, l'ha d'intentar crear. Si existeix, l'ha d’esborrar. Cada cop que es realitza una acció, cal dir si s'ha pogut dur a terme i la ruta absoluta de la carpeta processada.

  • Per saber el directori de treball es pot fer servir: System.getProperty("user.dir")
  • Més informació de les propietats del sistema a: documents oracle - getProperties


2. Genereu un programa que demani a l'usuari dues cadenes de text de tres lletres, de manera que les pugui escriure pel teclat en una mateixa línia. El programa ha de cercar tots els fitxers en el seu directori de treball que tinguin com a extensió la primera cadena de text i canviar-la a la segona. Per exemple, si l'usuari escriu “txt jpg”, tots els fitxers amb extensió ”.txt” han de passar a tenir l'extensió ”.jpg”.


3. Realitzeu un programa que, en executar-se, llegeixi des del teclat la ruta a una carpeta del vostre ordinador i una mida en Kb. Llavors, ha de mostrat per pantalla tots els fitxers (no les carpetes) amb una mida superior a la donada per l’usuari. (Recordeu que 1 Kb = 1024 bytes.) Si la carpeta no existeix, ha de mostrar un missatge d'error.


4. Feu un programa que pregunti per pantalla el nom (o part del nom) d'un fitxer i la ruta a una carpeta. Aquestes dades les introduirà l'usuari pel teclat. Llavors el programa ha de cercar i mostrar per pantalla la ruta absoluta de tots els fitxers amb aquest nom a partir de la carpeta assenyalada (tant directament dintre seu com dins d'altres carpetes successives).


5. Es vol crear un explorador del sistema de fitxers en mode text, controlat des del teclat. Aquest programa mostra una línia de comandes on veure's representada la carpeta actual en què es troba l'usuari. A l'inici, estarà a la carpeta de treball del programa. Llavors, mitjançant les comandes següents es pot explorar el sistema de fitxers:

  • cd .., l'usuari es desplaça a la carpeta pare de l'actual.
  • cd nomCarpeta, l'usuari entra a la carpeta amb el nom “nomCarpeta”, que ha d'estar dins de la carpeta actual.
  • ls, es mostren totes les carpetes i fitxers continguts dins de la carpeta actual.
  • del nomFitxer, esborra el fitxer de la carpeta actual anomenat “nomFitxer”.
  • prop nomFitxer, mostra les propietats d'un fitxer: la seva mida i la seva darrera data de modificació.
  • fi, finalitza l'execució del programa.

Cal controlar tots els casos erronis i avisar l'usuari: usar comandes invàlides o intentar entrar en una carpeta inexistent. Un cop s'arriba a la carpeta arrel de l'ordinador, si es fa cd .., no ha de passar res.


Ampliació exercicis File

6. Fes un programa que accepti com a paràmetre de programa una determinada extensió de fitxer (per exemple "xml"). Una vegada fet això el programa crearà la carpeta "ElTeuHome/m3/fitxers/extensio (l'extensió que toqui) i copiarà (no mourà) tots els fitxers que trobi amb aquella extensió dins de tot el "home" inclosos tots els subdirectoris.

  • Investiga el mètode copy de la classe Files i el mètode toPath de la classe File.