Vrs 0.1.6.0

Compilata da CSiCoAlm il 2021/11/07
- Corretto bug rilevato (ISSUE 01)
- Inserita solita icona per i tools.
- Sistemato la classe cTools inserendo tutti i tools trovati finora
This commit is contained in:
CSiCoAlm committed 2021-11-07 15:54:07 +01:00
1 parent 06440bcdbe
commit a6fdfd64b2
9 files changed
+508 -178

No files matched your search

+244 -144
View File
@@ -12,43 +12,16 @@ namespace A69WD {
public class cTools {
/// <summary>
/// Carica l'assemby da un array di byte
/// </summary>
/// <param name="binaries">Array di byte che definiscono l'assembly</param>
/// <returns>Assembly decodificato dal'array di byte</returns>
public static Assembly LoadAssemblyFromBinaries(byte[] binaries) {
Assembly asm = null;
try {
asm = Assembly.Load(binaries);
} catch { }
return asm;
}
/// <summary>
/// Carica l'assembly dal file indicato
/// </summary>
/// <param name="filename">Nome completo del file assembly da leggere</param>
/// <returns>Assembly decodificato dal file</returns>
public static Assembly LoadAssemblyFromFile(string filename) {
byte[] binaries = ReadFully(filename);
return LoadAssemblyFromBinaries(binaries);
}
/*
*
* Versione 1.0 del 2021/11
*
*/
/// <summary>
/// Legge il file e ne ritorna l'array di byte che lo compone
/// </summary>
/// <param name="filename">Nome completo del file da leggere</param>
/// <returns>Array con i byte letti dal file</returns>
public static byte[] ReadFully(string filename) {
FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
byte[] result = br.ReadBytes((int)fs.Length);
br.Close();
fs.Close();
return result;
}
#region Utility sui File:
/// <summary>
/// Scrive il testo in un file con append=false e Encoding UTF8
@@ -56,12 +29,16 @@ namespace A69WD {
/// <param name="FullFileName">Nome completo del file da creare/sovrascrivere</param>
/// <param name="Text">StringBuilder con il testo da riportare nel file</param>
public static void WriteTextFile(string FullFileName, StringBuilder Text) {
//System.IO.StreamWriter sw = new System.IO.StreamWriter(FullFileName, false, Encoding.UTF8);
//sw.Write(Text.ToString());
//sw.Flush();
//sw.Close();
WriteTextFile(FullFileName, Text, Encoding.UTF8);
}
/// <summary>
/// Scrive il testo in un file con append=false e Encoding UTF8
/// </summary>
/// <param name="FullFileName">Nome completo del file da creare/sovrascrivere</param>
/// <param name="Text">StringBuilder con il testo da riportare nel file</param>
/// <param name="code">Codifica usata nel testo</param>
public static void WriteTextFile(string FullFileName, StringBuilder Text, Encoding code) {
System.IO.StreamWriter sw = new System.IO.StreamWriter(FullFileName, false, code);
sw.Write(Text.ToString());
@@ -69,6 +46,7 @@ namespace A69WD {
sw.Close();
}
/// <summary>
/// Metodo che legge un testo da file (UTF8)
/// </summary>
@@ -97,6 +75,7 @@ namespace A69WD {
return str;
}
/// <summary>
/// Metodo che legge un testo da file
/// </summary>
@@ -135,84 +114,25 @@ namespace A69WD {
return txt;
}
/// <summary>
/// Esegue un comando dos dalla shell
/// </summary>
/// <param name="cmd">Comando da eseguire in shell</param>
public static void ExecDosCmd(string cmd) {
string argu = string.Format("/C \"{0}\"", cmd);
System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo();
info.FileName = "cmd.exe";
info.Arguments = argu;
info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
System.Diagnostics.Process.Start(info);
}
/// <summary>
/// Esegue un comando dos dalla shell e cattura il risultato
/// Salva la stringa passata come file con path indicato.
/// </summary>
/// <param name="cmd">Comando da eseguire</param>
/// <param name="args">Argomenti da passare</param>
/// <returns>Testo ritornato dal comando.</returns>
public static string ExecDosCmd(string cmd, string args) {
System.Diagnostics.ProcessStartInfo ProcInfo = new System.Diagnostics.ProcessStartInfo(cmd, args);
ProcInfo.RedirectStandardOutput = true;
ProcInfo.UseShellExecute = false;
System.Diagnostics.Process p = System.Diagnostics.Process.Start(ProcInfo);
System.IO.TextReader tr = p.StandardOutput;
string result = tr.ReadToEnd();
tr.Close();
return result;
}
public static bool EditPad(string file) {
/// <param name="fileName">Path del file da creare o sovrascrivere</param>
/// <param name="testo">Testo da scrivere nel file</param>
/// <param name="encoding">Formato di codifica da adottare nel salvataggio. UTF8 per ottenere un corretto testo con editpad.</param>
/// <returns>True se tutto ok, False altrimenti</returns>
public static bool SaveStringToFile(string fileName, string testo, System.Text.Encoding encoding) {
try {
System.Diagnostics.Process proc = new System.Diagnostics.Process();
// proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
// proc.StartInfo.Verb = "print";
proc.StartInfo.FileName = @"C:\Programmi\My_Tools\Editors\EditPad\EditPad.exe";
proc.StartInfo.Arguments = String.Format(@" {0}", file);
Logger.Log(proc.StartInfo.FileName + proc.StartInfo.Arguments);
proc.Start();
// Salva la stringa passata come file di testo.
StreamWriter sw = new StreamWriter(fileName, false, encoding);
sw.Write(testo);
// Libero risorse:
sw.Flush();
sw.Close();
return true;
} catch (Exception ex) { Logger.Log(new object[] { "Error Code: EG0284", ex }); return false; }
} catch { return false; }
}
// public class Pdf {
// public static Boolean PrintPDFs(string pdfFileName)
// {
// try
// {
// Process proc = new Process();
// proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
// proc.StartInfo.Verb = "print";
//
// //Define location of adobe reader/command line switches to launch adobe in "print" mode
// proc.StartInfo.FileName = @"C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe";
// proc.StartInfo.Arguments = String.Format(@"/p /h {0}", pdfFileName);
// proc.StartInfo.UseShellExecute = false;
// proc.StartInfo.CreateNoWindow = true;
//
// proc.Start();
// proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
// if (proc.HasExited == false)
// {
// proc.WaitForExit(10000);
// }
//
// proc.EnableRaisingEvents = true;
//
// proc.Close();
// KillAdobe("AcroRd32");
// return true;
// }
// catch
// {
// return false;
// }
// }
/// <summary>
@@ -223,6 +143,7 @@ namespace A69WD {
/// <returns>Array dei path completi, dei file trovati</returns>
public static string[] ElencoFile(string path) { return ElencoFile(path, "*.*", SearchOption.TopDirectoryOnly); }
/// <summary>
/// Genera l'elenco dei file nella directory indicata che soddisfano al filtro indicato
/// </summary>
@@ -242,6 +163,215 @@ namespace A69WD {
public static string[] ElencoFile(string path, string filtro, SearchOption option) { return Directory.GetFiles(path, filtro, option); }
/// <summary>
/// Metodo che esegue una copia di backup del file indicato
/// </summary>
/// <param name="FilePath">Path completo del file da backuppare</param>
/// <returns>True se tutto ok, False altrimenti.</returns>
public static bool BackupFile(string FilePath) {
try {
string LinkDBPathBK = Path.GetFileNameWithoutExtension(FilePath) + "_BK_" + DateTime.Now.ToString("yyyy-MM-dd");
LinkDBPathBK = FilePath.Replace(Path.GetFileNameWithoutExtension(FilePath), LinkDBPathBK);
if (!File.Exists(LinkDBPathBK)) File.Move(FilePath, LinkDBPathBK);
return true;
} catch { return false; }
}
/// <summary>
/// Muove i file indicati, nella directory di destinazione indicata
/// </summary>
/// <param name="IndexFiles">Array con l'elenco dei file da spostare</param>
/// <param name="PathDestination">Path della directory in cui spostare i file</param>
/// <returns>True se tutto OK, False altrimenti.</returns>
public static bool MoveFiles(string[] Files, string PathDestination) {
// Sposta tutti i file indicati nella directory indicata:
try {
foreach (string file in Files) {
string dst = Path.Combine(PathDestination, Path.GetFileName(file));
if (System.IO.File.Exists(dst)) System.IO.File.Delete(dst);
File.Move(file, dst);
}
return true;
} catch { return false; }
}
/// <summary>
/// Legge il file e ne ritorna l'array di byte che lo compone
/// </summary>
/// <param name="filename">Nome completo del file da leggere</param>
/// <returns>Array con i byte letti dal file</returns>
public static byte[] ReadFully(string filename) {
FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
byte[] result = br.ReadBytes((int)fs.Length);
br.Close();
fs.Close();
return result;
}
#endregion
#region Assembly Attribute Accessors
#region Assembly Property: Title, Version, Description, Product, Copyright, Company
public static string AssemblyTitle {
get {
object[] attributes = System.Reflection.Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(System.Reflection.AssemblyTitleAttribute), false);
if (attributes.Length > 0) {
System.Reflection.AssemblyTitleAttribute titleAttribute = (System.Reflection.AssemblyTitleAttribute)attributes[0];
if (titleAttribute.Title != "") {
return titleAttribute.Title;
}
}
return System.IO.Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().CodeBase);
}
}
public static string AssemblyVersion {
get {
return System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
}
}
public static string AssemblyDescription {
get {
object[] attributes = System.Reflection.Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(System.Reflection.AssemblyDescriptionAttribute), false);
if (attributes.Length == 0) {
return "";
}
return ((System.Reflection.AssemblyDescriptionAttribute)attributes[0]).Description;
}
}
public static string AssemblyProduct {
get {
object[] attributes = System.Reflection.Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(System.Reflection.AssemblyProductAttribute), false);
if (attributes.Length == 0) {
return "";
}
return ((System.Reflection.AssemblyProductAttribute)attributes[0]).Product;
}
}
public static string AssemblyCopyright {
get {
object[] attributes = System.Reflection.Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(System.Reflection.AssemblyCopyrightAttribute), false);
if (attributes.Length == 0) {
return "";
}
return ((System.Reflection.AssemblyCopyrightAttribute)attributes[0]).Copyright;
}
}
public static string AssemblyCompany {
get {
object[] attributes = System.Reflection.Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(System.Reflection.AssemblyCompanyAttribute), false);
if (attributes.Length == 0) {
return "";
}
return ((System.Reflection.AssemblyCompanyAttribute)attributes[0]).Company;
}
}
#endregion
/// <summary>
/// Carica l'assemby da un array di byte
/// </summary>
/// <param name="binaries">Array di byte che definiscono l'assembly</param>
/// <returns>Assembly decodificato dal'array di byte</returns>
public static Assembly LoadAssemblyFromBinaries(byte[] binaries) {
Assembly asm = null;
try {
asm = Assembly.Load(binaries);
} catch { }
return asm;
}
/// <summary>
/// Carica l'assembly dal file indicato
/// </summary>
/// <param name="filename">Nome completo del file assembly da leggere</param>
/// <returns>Assembly decodificato dal file</returns>
public static Assembly LoadAssemblyFromFile(string filename) {
byte[] binaries = ReadFully(filename);
return LoadAssemblyFromBinaries(binaries);
}
#endregion
#region Shell DOS:
/// <summary>
/// Esegue un comando dos dalla shell
/// </summary>
/// <param name="cmd">Comando da eseguire in shell</param>
public static void ExecDosCmd(string cmd) {
string argu = string.Format("/C \"{0}\"", cmd);
System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo();
info.FileName = "cmd.exe";
info.Arguments = argu;
info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
System.Diagnostics.Process.Start(info);
}
/// <summary>
/// Esegue un comando dos dalla shell e cattura il risultato
/// </summary>
/// <param name="cmd">Comando da eseguire</param>
/// <param name="args">Argomenti da passare</param>
/// <returns>Testo ritornato dal comando.</returns>
public static string ExecDosCmd(string cmd, string args) {
System.Diagnostics.ProcessStartInfo ProcInfo = new System.Diagnostics.ProcessStartInfo(cmd, args);
ProcInfo.RedirectStandardOutput = true;
ProcInfo.UseShellExecute = false;
System.Diagnostics.Process p = System.Diagnostics.Process.Start(ProcInfo);
System.IO.TextReader tr = p.StandardOutput;
string result = tr.ReadToEnd();
tr.Close();
return result;
}
/// <summary>
/// Apre il file indicato in notepad e lo visualizza.
/// </summary>
/// <param name="file">File da aprire</param>
/// <returns>True se tutto ok, false altrimenti</returns>
public static bool ShowOnNotepad(string file) {
try {
System.Diagnostics.Process proc = new System.Diagnostics.Process();
// proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
// proc.StartInfo.Verb = "print";
proc.StartInfo.FileName = @"D:\MyTools\Npp\notepad++.exe";
proc.StartInfo.Arguments = String.Format(@" {0}", file);
Logger.Log(proc.StartInfo.FileName + proc.StartInfo.Arguments);
proc.Start();
return true;
} catch (Exception ex) { Logger.Log(new object[] { "Error Code: EG0284", ex }); return false; }
}
#endregion
/// <summary>
/// Metodo che analizza il file indicato ed inserisce nella lista tutti i link trovati.
/// </summary>
@@ -332,21 +462,6 @@ namespace A69WD {
}
/// <summary>
/// Metodo che esegue una copia di backup del file indicato
/// </summary>
/// <param name="FilePath">Path completo del file da backuppare</param>
/// <returns>True se tutto ok, False altrimenti.</returns>
public static bool BackupFile(string FilePath) {
try {
string LinkDBPathBK = Path.GetFileNameWithoutExtension(FilePath) + "_BK_" + DateTime.Now.ToString("yyyy-MM-dd");
LinkDBPathBK = FilePath.Replace(Path.GetFileNameWithoutExtension(FilePath), LinkDBPathBK);
if (!File.Exists(LinkDBPathBK)) File.Move(FilePath, LinkDBPathBK);
return true;
} catch { return false; }
}
/// <summary>
/// Esegue una formattazione del testo ricavato da un file html per scremarlo delle parti html
@@ -445,24 +560,6 @@ namespace A69WD {
/// <summary>
/// Muove i file indicati, nella directory di destinazione indicata
/// </summary>
/// <param name="IndexFiles">Array con l'elenco dei file da spostare</param>
/// <param name="PathDestination">Path della directory in cui spostare i file</param>
/// <returns>True se tutto OK, False altrimenti.</returns>
public static bool MoveFiles(string[] Files, string PathDestination) {
// Sposta tutti i file indicati nella directory indicata:
try {
foreach (string file in Files) {
string dst = Path.Combine(PathDestination, Path.GetFileName(file));
if (System.IO.File.Exists(dst)) System.IO.File.Delete(dst);
File.Move(file, dst);
}
return true;
} catch { return false; }
}
public static bool WriteStyleSheet(string FullFileName) {
try {
@@ -476,6 +573,9 @@ namespace A69WD {
}
}
} // class Tools
} // namespace A69WD