files

Mattepuffo's logo
Contare linee in un file con Java

Contare linee in un file con Java

Per contare le linee di un file, ci sono tanti modi.

Il più usato è quello di scorrere tutto il file fino alla fine, tenendo un counter che viene aggiornato ad ogni linea.

Ragionamento giusto, ma il codice "fatto in casa" risulta più lento nel caso di grandi file.

Oggi vi propongo due esempi che dovrebbero essere più performanti.

Oggi vediamo due esempi usando Java.

Il primo usa LineNumberReader, uno stream che tiene traccia del numero di linea corrente.

Mattepuffo's logo
Download files da FTP in C#

Download files da FTP in C#

In questo articolo abbiamo visto come connettersi a un server FTP tramite C#, e come listare tutti i files presenti in una directory.

Adesso, partendo da quella classe, useremo il metodo listFiles per creare tutta la lista dei files da scaricare.

In sostanza creeremo un altro metodo che prenderà quella lista e scaricherà i files in locale.

Mattepuffo's logo
Ripulire i file di log di MySQL

Ripulire i file di log di MySQL

MySQL crea tutta una serie di file di log propri, in genere in /var/lib/mysql o ib /usr/local/var.

Se non controlliamo rischiamo di trovarci sommersi dai suoi log; ad esempi osul mio server casalingo (usato quindi poco):

# ls -l mysql-bin*

-rw-rw---- 1 mysql mysql 126  9 gen 09.34 mysql-bin.000001
-rw-rw---- 1 mysql mysql 107  9 gen 09.35 mysql-bin.000002
-rw-rw---- 1 mysql mysql 107  9 gen 09.35 mysql-bin.000003
-rw-rw---- 1 mysql mysql 107  9 gen 09.35 mysql-bin.000004
-rw-rw---- 1 mysql mysql 107  9 gen 09.35 mysql-bin.000005
-rw-rw---- 1 mysql mysql 107  9 gen 09.35 mysql-bin.000006
-rw-rw---- 1 mysql mysql 107  9 gen 09.35 mysql-bin.000007
-rw-rw---- 1 mysql mysql 107  9 gen 09.35 mysql-bin.000008
-rw-rw---- 1 mysql mysql 107  9 gen 09.35 mysql-bin.000009
-rw-rw---- 1 mysql mysql 107  9 gen 09.35 mysql-bin.000010
-rw-rw---- 1 mysql mysql 107  9 gen 09.35 mysql-bin.000011
-rw-rw---- 1 mysql mysql 107  9 gen 09.35 mysql-bin.000012
-rw-rw---- 1 mysql mysql 107  9 gen 09.35 mysql-bin.000013
-rw-rw---- 1 mysql mysql  38  9 gen 09.35 mysql-bin.index

Mattepuffo's logo
Conoscere la dimensione dei file con PHP

Conoscere la dimensione dei file con PHP

Conoscere la dimensione dei file con PHP è molto semplice: basta la funzione filesize().

Molto banalmente:

$filesize = filesize('/path/to/file');

echo $filesize;

La dimensione però è espressa in bytes, il che non rende la lettura molto semplice.

Possiamo facilmente trasformare la dimensione in qualcosa di più leggibile come KB o MB con la funzione round().

Mattepuffo's logo
C# SaveFileDialog

C# SaveFileDialog

.NET Framework mette a disposizione il dialog SaveFileDialog per salvare i file.

Vediamo come implementarlo in C# in un WindowsForm.

Nel nostro form principale avremo una voce di menu alla quale sarà associata un'azione del genere:

private void saveItem_Click(object sender, EventArgs e)
{
    try
    {
       DialogSalvaTxt ds = new DialogSalvaTxt();
       ds.dialog("TESTO DA SALVARE");
    }
    catch (IOException ex)
    {
       MessageBox.Show(ex.Message);
    }
}

DialogSalvaTxt è la classe preposta alla creazione del SaveFileDialog; viene anche richiamato un metodo che vuola una string come parametro.

Mattepuffo's logo
Monitorare una directory in C#

Monitorare una directory in C#

Avevo la necesità di controllare le modifiche effettuate dentro una particolare directory.

Grazie al forum.html.it sono arrivato presto alla soluzione: usare la classe FileSystemWatcher di C#.

Vediamo come usare questa classe.

Questa è la classe che mi sono creato io:

namespace DirectoryMonitor
{
    class DirMonitor
    {
        private string path;
        private DateTime dt = new DateTime();

        public DirMonitor(string path)
        {
            this.path = path;
        }

        public void Watcher()
        {
            FileSystemWatcher fw = new FileSystemWatcher();
            fw.Path = path;
            fw.IncludeSubdirectories = false;
            fw.NotifyFilter =
                NotifyFilters.LastAccess |
                NotifyFilters.LastWrite |
                NotifyFilters.FileName |
                NotifyFilters.DirectoryName;
            fw.Changed += new FileSystemEventHandler(OnChanged);
            fw.Created += new FileSystemEventHandler(OnChanged);
            fw.Deleted += new FileSystemEventHandler(OnChanged);
            fw.Renamed += new RenamedEventHandler(OnRenamed);
            fw.EnableRaisingEvents = true;

            Console.WriteLine("Digita q per uscire.");
            Console.WriteLine();
            while (Console.Read() != 'q') ;
        }

        private void OnChanged(object source, FileSystemEventArgs e)
        {
            dt = DateTime.UtcNow;
            Console.WriteLine("PATH " + e.FullPath + " " + e.ChangeType + " AT " + dt.ToLocalTime());
        }

        private void OnRenamed(object source, RenamedEventArgs e)
        {
            dt = DateTime.UtcNow;
            Console.WriteLine("OLD PATH " + e.OldFullPath + " NEW PATH " + e.FullPath + " " + e.ChangeType + " AT " + dt.ToLocalTime());
        }
    }
}