private void FillHeader(int iID) { Database.DriveInfo di = Database.DatabaseManager.Get(iID); txtDrive.Text = di.Drive; numTimeInterval.Value = di.TimeInterval; chkEnabled.Checked = di.Status == 1; ComboBoxTools.SelectItemValue(cboOperation, di.Operation); ComboBoxTools.SelectItemValue(cboTimeUnit, di.TimeUnit); }
void timer_Tick(object sender, EventArgs e) { if (sender != null && sender is Timer) { Timer timer = sender as Timer; if (timer.Tag != null && timer.Tag is Database.DriveInfo) { Database.DriveInfo driveInfo = timer.Tag as Database.DriveInfo; ManageDriveOperation(driveInfo); } } }
private void ManageDriveOperation(Database.DriveInfo driveInfo) { if (_resumedFromSleep != null) { if ((DateTime.Now - _resumedFromSleep.Value).TotalSeconds > 15) { _resumedFromSleep = null; } else { return; } } string volumeName = string.Empty; bool ignoreVolumeNames = ApplicationConfiguration.IgnoreVolumeNames; try { if (!ignoreVolumeNames) { volumeName = (new System.IO.DriveInfo(Path.GetPathRoot(driveInfo.Drive))).VolumeLabel; } } catch (Exception exc) { LogManager.Write(exc.Message); } if (Directory.Exists(driveInfo.Drive) && (ignoreVolumeNames == true || (ignoreVolumeNames == false && driveInfo.VolumeNames.Contains(volumeName)))) { try { if (driveInfo.Operation == "r") { var fileNames = Directory.GetFiles(driveInfo.Drive, "*.*").Take(5).ToList(); if (fileNames != null && fileNames.Count > 0) { // get random file var fileName = fileNames[_random.Next(Math.Max(fileNames.Count - 1, 1))]; if (fileName != null) { if (File.Exists(fileName)) { using (var reader = File.OpenRead(fileName)) { // make sure that file is at least on byte long if (reader.Length > 1) { // read random byte from the file var maxOffset = reader.Length > int.MaxValue ? int.MaxValue : (int)reader.Length; var offset = _random.Next(Math.Max(maxOffset - 1, 1)); //LogManager.Write( "Read one byte at location {0} from file '{1}'", offset, fileName ); reader.Seek(offset, SeekOrigin.Begin); var data = new byte[1]; reader.Read(data, 0, 1); } } } } } } else { var fileName = Path.Combine(Path.GetFullPath(driveInfo.Drive), "KeepAliveHD.txt"); using (var writer = new StreamWriter(fileName, false, Encoding.ASCII)) { writer.Write("This file was generated by KeepAliveHD application on " + DateTime.Now.ToString()); } driveInfo.Connected = true; if (ApplicationConfiguration.DeleteTextFile) { if (File.Exists(fileName)) { File.Delete(fileName); } } } } catch (Exception exc) { LogManager.Write(exc.Message); } } else { driveInfo.Connected = false; } }