private static void ManageOrphanTmp(string FileName) { LogDatedWriter Log = null; try { string LogFname = Path.Combine(Path.GetDirectoryName(Path.GetFullPath(FileName)), "SerializationError.log"); Log = new LogDatedWriter(LogFname); Log.WriteEmptyLine(); Log.WriteLogLines(string.Format("Trovato file .bak orfano \"{0}\"", FileName + ".bak")); try { string OrigFile = Path.GetFullPath(FileName + ".bak"); string NewFileName = string.Format("{0:dd-MM-yyyy HH.mm.ss} {1}.cpy", DateTime.Now, Path.GetFileName(OrigFile)); string CopyFile = Path.Combine(Path.GetDirectoryName(Path.GetFullPath(FileName + ".bak")), NewFileName); File.Copy(OrigFile, CopyFile); Log.WriteLogLines("E' stata creata una copia del file in oggetto"); Log.WriteLogLines(string.Format("La copia si chiama \"{0}\"", NewFileName)); Log.WriteEmptyLine(); } catch (Exception) { Log.WriteLogLines("Non è stato possibile creare una copia del file in oggetto"); Log.WriteEmptyLine(); } try { File.Move(FileName + ".bak", FileName); Log.WriteLogLines(string.Format("Il file è stato rinominato in: {0} per permettere la rilettura", FileName)); } catch (Exception) { Log.WriteLogLines(string.Format("Impossibile rinominare il file {0} in {0}", FileName + ".bak", FileName)); } Log.WriteEmptyLine(); Log.WriteSeparator(); } catch (Exception le) { string Message = string.Format("Si è verificato un errore nella scrittura sul file \"{0}\" e non è stato possibile creare un file di log.{1}La directory di lavoro corrente era: \"{2}\"{1}Dettagli errore serializzazione: {1}{3}{1}Dettagli errore Logger: {1}{4}", FileName + ".bak", "\r\n", System.Environment.CurrentDirectory, "", le.ToString()); //System.Diagnostics.EventLog.WriteEntry(Base.CommonFunction.Varie.EventSource, Message, EventLogEntryType.Error); } finally { try { Log?.Close(); } catch { } } }
private static void ManageWriteError(object obj, string FileName, System.Exception ex) { LogDatedWriter Log = null; try { string LogFname = Path.Combine(Path.GetDirectoryName(Path.GetFullPath(FileName)), "SerializationError.log"); Log = new LogDatedWriter(LogFname); Log.WriteEmptyLine(); Log.WriteLogLines(string.Format("Si è verificato un errore durante la scrittura dell' oggetto \"{0}\" sul file \"{1}\"", obj, FileName)); if (ex is System.IO.IOException) { LogFileUsage(Log, FileName); } Log.WriteEmptyLine(); Log.WriteLogLines("Descrizione dell' errore:"); Log.WriteLogLines(ex.Message); Log.WriteEmptyLine(); Log.WriteLogLines("Dettagli errore:"); Log.WriteLogLines(ex.ToString()); Log.WriteSeparator(); } catch (Exception le) { string Message = string.Format("Si è verificato un errore nella scrittura sul file \"{0}\" e non è stato possibile creare un file di log.{1}La directory di lavoro corrente era: \"{2}\"{1}Dettagli errore serializzazione: {1}{3}{1}Dettagli errore Logger: {1}{4}", FileName, "\r\n", System.Environment.CurrentDirectory, ex.ToString(), le.ToString()); //System.Diagnostics.EventLog.WriteEntry(Base.CommonFunction.Varie.EventSource, Message, EventLogEntryType.Error); } finally { try { if ((Log != null)) { Log.Close(); } } catch { } } }
private static void ManageReadError(string FileName, System.Exception ex) { LogDatedWriter Log = null; try { string LogFname = Path.Combine(Path.GetDirectoryName(Path.GetFullPath(FileName)), "SerializationError.log"); Log = new LogDatedWriter(LogFname); Log.WriteEmptyLine(); Log.WriteLogLines(string.Format("Si è verificato un errore durante la lettura del file \"{0}\"", FileName)); if (ex is System.IO.IOException) { LogFileUsage(Log, FileName); } Log.WriteEmptyLine(); if (!((ex) is MissingPasswordException || (ex) is WrongPasswordException)) { //Create a copy of problematic file try { string OrigFile = Path.GetFullPath(FileName); string NewFileName = string.Format("{0:dd-MM-yyyy HH.mm.ss} {1}.dam", DateTime.Now, Path.GetFileName(OrigFile)); string CopyFile = Path.Combine(Path.GetDirectoryName(Path.GetFullPath(FileName)), NewFileName); File.Copy(OrigFile, CopyFile); Log.WriteLogLines("E' stata creata una copia del file in oggetto"); Log.WriteLogLines(string.Format("La copia si chiama \"{0}\"", NewFileName)); Log.WriteEmptyLine(); } catch (Exception) { Log.WriteLogLines("Non è stato possibile creare una copia del file in oggetto"); Log.WriteEmptyLine(); } } Log.WriteLogLines("Descrizione dell' errore:"); Log.WriteLogLines(ex.Message); Log.WriteEmptyLine(); Log.WriteLogLines("Dettagli errore:"); Log.WriteLogLines(ex.ToString()); Log.WriteSeparator(); } catch (Exception le) { string Message = string.Format("Si è verificato un errore nella lettura del file \"{0}\" e non è stato possibile creare un file di log.{1}La directory di lavoro corrente era: \"{2}\"{1}Dettagli errore serializzazione: {1}{3}{1}Dettagli errore Logger: {1}{4}", FileName, "\r\n", System.Environment.CurrentDirectory, ex.ToString(), le.ToString()); //System.Diagnostics.EventLog.WriteEntry(Base.CommonFunction.Varie.EventSource, Message, EventLogEntryType.Error); } finally { try { Log?.Close(); } catch { } } }