Example #1
0
        /// <summary>
        /// Crée une copie de sauvegarde du fichier spécifié.
        /// Les dates de création/modification restent inchangées.
        /// </summary>
        /// <param name="fileName">Nom du fichier à sauvegarder</param>
        /// <param name="copyFileName">Nom de la copie</param>
        public static void BackupFile(string fileName, string copyFileName)
        {
            try
            {
                // Vérifications
                if (fileName == null || copyFileName == null || fileName.Equals(copyFileName))
                {
                    throw new Exception(_ERROR_BACKUP_PARAMS);
                }

                // Copie avec préservation de la date de modification
                FileInfo sourceInfo = new FileInfo(fileName);
                DateTime modDate    = sourceInfo.LastWriteTime;

                File.Copy(fileName, copyFileName, true);
                File2.RemoveAttribute(copyFileName, FileAttributes.ReadOnly);

                new FileInfo(copyFileName)
                {
                    LastWriteTime = modDate
                };

                File2.AddAttribute(copyFileName, FileAttributes.ReadOnly);
            }
            catch (Exception ex)
            {
                string errorMessage = string.Format(_ERROR_BACKUP, fileName, copyFileName);
                throw new Exception(errorMessage, ex);
            }
        }