コード例 #1
0
        /// <summary>
        /// Creo le immagini temporanee per darle da mangiare a gimp.
        /// </summary>
        /// <param name="fotografie"></param>
        /// <returns></returns>
        private FileInfo [] creaImmaginiTemporanee()
        {
            // Creo un vettore uguale a quello di partenza, con i nomi dei files temporanei che vado a creare
            FileInfo [] tempFilesInfo = new FileInfo [_fotosDaModificare.Count];

            for (int ciclo = 0; ciclo < _fotosDaModificare.Count; ciclo++)
            {
                Fotografia foto             = _fotosDaModificare[ciclo];
                string     nomeFilePartenza = null;

                // Prima verifico se esiste un file con già l'immagine risultante.
                // In tal caso scelgo subito questa.
                if (nomeFilePartenza == null && AiutanteFoto.esisteFileRisultante(foto))
                {
                    nomeFilePartenza = PathUtil.nomeCompletoRisultante(foto);
                }

                if (nomeFilePartenza == null && foto.correzioniXml != null)
                {
                    // TODO qui ci sono delle modifiche da apportare che non sono state ancora applicate.
                    //      devo creare la risultante e poi ripartire dall'inizio.
                    //      Per ora salto questo passaggio. Non ho tempo. Rimane da fare per dopo.
                }

                // Se ancora non ho rimediato niente prendo l'immagine originale
                if (nomeFilePartenza == null)
                {
                    nomeFilePartenza = PathUtil.nomeCompletoOrig(foto);
                }

                // Creo un nome di file temporaneo
                string tempFile = PathUtil.dammiTempFileConEstesione(Path.GetExtension(foto.nomeFile));

                // copio il file da modificare e tolgo il flag di read-only
                File.Copy(nomeFilePartenza, tempFile, true);
                File.SetAttributes(tempFile, FileAttributes.Normal);
                tempFilesInfo [ciclo] = new FileInfo(tempFile);

                Trace.WriteLine("prima len=" + tempFilesInfo [ciclo].Length + "  wrtime=" + tempFilesInfo [ciclo].LastWriteTime.ToLongTimeString());
            }

            return(tempFilesInfo);
        }