/// <summary> /// Gets the datafile report. /// </summary> /// <value>The datafile report.</value> private static string GetDatafileReport() { StringBuilder datafileReport = new StringBuilder(); try { datafileReport.AppendLine("Datafile report:"); foreach (string datafile in Datafile.GetFilesFrom(EveMonClient.EVEMonDataDir, Datafile.DatafilesExtension)) { FileInfo info = new FileInfo(datafile); Datafile file = new Datafile(Path.GetFileName(datafile)); datafileReport.AppendLine($" {info.Name} ({info.Length / 1024}KiB - {file.MD5Sum})"); } } catch (UnauthorizedAccessException ex) { ExceptionHandler.LogException(ex, true); datafileReport.AppendLine(Properties.Resources.ErrorNoDataFile); } return(datafileReport.ToString()); }
/// <summary> /// Downloads the updates. /// </summary> private void DownloadUpdates() { List <SerializableDatafile> datafiles = new List <SerializableDatafile>(); // Copy the new datafiles to a new list datafiles.AddRange(m_args.ChangedFiles); // Show the download dialog, which will download the files using (DataUpdateDownloadForm form = new DataUpdateDownloadForm(datafiles)) { form.ShowDialog(); } foreach (SerializableDatafile versionDatafile in datafiles.Where(datafile => datafile.IsDownloaded)) { string oldFilename = Path.Combine(EveMonClient.EVEMonDataDir, versionDatafile.Name); string tempFilename = $"{oldFilename}.tmp"; Datafile downloadedDatafile = new Datafile(Path.GetFileName(tempFilename)); if (versionDatafile.MD5Sum != null && versionDatafile.MD5Sum != downloadedDatafile.MD5Sum) { FileHelper.DeleteFile(tempFilename); continue; } UpdateManager.ReplaceDatafile(oldFilename, tempFilename); m_args.ChangedFiles.Remove(versionDatafile); } }
static List <Datafile> TakeFileSnapshot(string sourceDirName) { List <string> validExtensions = new List <string>() { ".txt", ".bak", ".sql" }; var minModifiedDate = new DateTime(2019, 12, 18); List <Datafile> Datafiles = new List <Datafile>(); foreach (var file in Directory.EnumerateFiles(sourceDirName, "*.*", SearchOption.AllDirectories)) { var fFile = new FileInfo(file); if ((validExtensions.Contains(fFile.Extension)) && (minModifiedDate <= fFile.LastAccessTime)) { var newSourceFile = new Datafile(); newSourceFile.fileName = fFile.Name; newSourceFile.lastAccessTime = fFile.LastAccessTime; newSourceFile.size = fFile.Length; newSourceFile.extension = fFile.Extension; newSourceFile.directory = fFile.DirectoryName; newSourceFile.status = "Snapshot"; Datafiles.Add(newSourceFile); } } return(Datafiles); }
/// <summary> /// Creates one file alongside the resources file containing /// the MD5 sums for each resource. /// </summary> /// <param name="filename">The filename.</param> /// <exception cref="System.IO.FileNotFoundException"></exception> internal static void CreateMD5SumsFile(string filename) { ResetCounters(); Console.WriteLine(); string resourcesPath = Path.Combine(GetSolutionDirectory(), @"src\EVEMon.Common\Resources"); string md5SumsFileFullPath = Path.Combine(resourcesPath, filename); using (StreamWriter md5SumsFile = File.CreateText(md5SumsFileFullPath)) { foreach (string file in Datafile.GetFilesFrom(resourcesPath, Datafile.DatafilesExtension)) { FileInfo datafile = new FileInfo(file); if (!datafile.Exists) { throw new FileNotFoundException($"{file} not found!"); } string line = $"{Common.Util.CreateMD5From(file)} *{datafile.Name}"; md5SumsFile.WriteLine(line); } } Console.WriteLine(@"MD5Sums file created successfully"); Console.WriteLine(); }
/// <summary> /// Updates the info in the data files section. /// </summary> /// <param name="control"></param> /// <param name="datafile"></param> private static void UpdateDatafileInfo(DatafileControl control, Datafile datafile) { // Data file info FileInfo fileInfo = new FileInfo(Path.Combine(Helper.GetDataFilesDirectory, datafile.Filename)); // Assign info control.gbDatafile.Text = datafile.Filename; control.lblMD5Sum.Text = datafile.MD5Sum; control.dtpDatafiles.Value = fileInfo.LastWriteTime; }
/// <summary> /// Downloads the updates. /// </summary> private void DownloadUpdates() { List <SerializableDatafile> datafiles = new List <SerializableDatafile>(); // Copy the list of datafiles m_args.ChangedFiles.ForEach(x => datafiles.Add(x)); foreach (var dfv in datafiles) { // Work out the new names of the files string urn = String.Format(CultureConstants.DefaultCulture, "{0}/{1}", dfv.Url, dfv.Name); string oldFilename = Path.Combine(EveClient.EVEMonDataDir, dfv.Name); string newFilename = String.Format(CultureConstants.DefaultCulture, "{0}.tmp", oldFilename); // If the file already exists delete it if (File.Exists(newFilename)) { File.Delete(newFilename); } // Show the download dialog, which will download the file using (UpdateDownloadForm f = new UpdateDownloadForm(urn, newFilename)) { if (f.ShowDialog() == DialogResult.OK) { string filename = Path.GetFileName(newFilename); Datafile datafile = new Datafile(filename); if (datafile.MD5Sum != dfv.MD5Sum) { File.Delete(newFilename); continue; } ReplaceDatafile(oldFilename, newFilename); m_args.ChangedFiles.Remove(dfv); } } } }
/// <summary> /// Occurs on clicking the "clear all" button in datafiles section. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnDatafilesClear_Click(object sender, EventArgs e) { rtbDatafileUrl.ResetText(); tbExpansion.ResetText(); tbExpVersion.ResetText(); tbExpRevision.ResetText(); foreach (DatafileControl dfControl in gbDatafiles.Controls.OfType <DatafileControl>().Where(x => x != null)) { dfControl.dtpDatafiles.ResetText(); dfControl.rtbDatafileMessage.ResetText(); Datafile datafile = s_datafiles.First(x => x.Filename == dfControl.gbDatafile.Text); if (datafile != null) { UpdateDatafileInfo(dfControl, datafile); } } UpdateCreateButtonEnabled(); }
/// <summary> /// Write sensor values to file /// </summary> /// <param name="SensorValue">Tinkerforge Sensor plugin value</param> public void HandleValue(MeasurementValue SensorValue) { Datafile.WriteLine(SensorValue.ToJSON()); }
/// <summary> /// Close the file /// </summary> public void Shutdown() { Datafile.Flush(); Datafile.Close(); }
/// <summary> /// Downloads the updates. /// </summary> private void DownloadUpdates() { List<SerializableDatafile> datafiles = new List<SerializableDatafile>(); // Copy the new datafiles to a new list datafiles.AddRange(m_args.ChangedFiles); // Show the download dialog, which will download the files using (DataUpdateDownloadForm form = new DataUpdateDownloadForm(datafiles)) { form.ShowDialog(); } foreach (SerializableDatafile versionDatafile in datafiles.Where(datafile => datafile.IsDownloaded)) { string oldFilename = Path.Combine(EveMonClient.EVEMonDataDir, versionDatafile.Name); string tempFilename = $"{oldFilename}.tmp"; Datafile downloadedDatafile = new Datafile(Path.GetFileName(tempFilename)); if (versionDatafile.MD5Sum != null && versionDatafile.MD5Sum != downloadedDatafile.MD5Sum) { FileHelper.DeleteFile(tempFilename); continue; } UpdateManager.ReplaceDatafile(oldFilename, tempFilename); m_args.ChangedFiles.Remove(versionDatafile); } }
/// <summary> /// Gets the datafile report. /// </summary> /// <value>The datafile report.</value> private static string GetDatafileReport() { StringBuilder datafileReport = new StringBuilder(); try { datafileReport.AppendLine("Datafile report:"); foreach (string datafile in Datafile.GetFilesFrom(EveMonClient.EVEMonDataDir, Datafile.DatafilesExtension)) { FileInfo info = new FileInfo(datafile); Datafile file = new Datafile(Path.GetFileName(datafile)); datafileReport .Append($" {info.Name} ({info.Length / 1024}KiB - {file.MD5Sum})") .AppendLine(); } } catch (UnauthorizedAccessException ex) { ExceptionHandler.LogException(ex, true); datafileReport .Append("Unable to create datafile report") .AppendLine(); } return datafileReport.ToString(); }