public void DeleteFile(string fileName) { ProtectedFileEntry targetProtectedFile = GetProtectedFileByName(fileName); targetProtectedFile.Delete(); MessageBox.Show( $"The file {targetProtectedFile.FullPath} is deleting and\n" + $"will NOT be tracked anymore", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Exclamation ); ProtectedFileEntries.Remove(targetProtectedFile); string[] protectingFiles = File.ReadAllLines(DataAccess.ProtectingFilesEnumerationFilePath); protectingFiles = protectingFiles.Where(filePath => 0 != StringComparer .OrdinalIgnoreCase .Compare(filePath, DataAccess.GetProtectedFilePath(targetProtectedFile.FullPath))).ToArray(); if (protectingFiles.Length != 0) { File.WriteAllLines(DataAccess.ProtectingFilesEnumerationFilePath, protectingFiles); } else { File.Delete(DataAccess.ProtectingFilesEnumerationFilePath); } }
public void RestoreFile(string fileName) { ProtectedFileEntry targetProtectedFile = GetProtectedFileByName(fileName); try { targetProtectedFile.RestoreContent(); } catch (Exception e) { MessageBox.Show(e.Message, e.Source); } }
internal static void WriteProtectedFileContent(ProtectedFileEntry protectedFile) { using (StreamWriter fileOutput = new StreamWriter(GetProtectedFilePath(protectedFile.FullPath))) { fileOutput.WriteLine(protectedFile.Name); fileOutput.WriteLine(protectedFile.TargetDirectory); fileOutput.WriteLine(protectedFile.Attributes); fileOutput.WriteLine(protectedFile.CreationTime); fileOutput.WriteLine(protectedFile.LastWriteTime); fileOutput.WriteLine(protectedFile.Size); fileOutput.WriteLine(protectedFile.MD5Hash); fileOutput.WriteLine(protectedFile.InitializationVector); fileOutput.Write(protectedFile.FileContent); } }
public ProtectedFileEntry AddFile(FileInfo fileInfo) { if (GetProtectedFileByName(fileInfo.Name) != null) { MessageBox.Show( "This file has been already added", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Exclamation ); return(null); } ProtectedFileEntry protectedFile = new ProtectedFileEntry(fileInfo); protectedFile.onFileChanged += ProtectedFile_onFileChanged; protectedFile.onFileRenamed += ProtectedFile_onFileRenamed; ProtectedFileEntries.Add(protectedFile); DataAccess.WriteProtectedFileContent(protectedFile); File.AppendAllLines(DataAccess.ProtectingFilesEnumerationFilePath, new[] { DataAccess.GetProtectedFilePath(protectedFile.FullPath) }); return(ProtectedFileEntries.Last()); }
public FilesSelection() { ProtectedFileEntries = new List <ProtectedFileEntry>(); if (!File.Exists(DataAccess.ProtectingFilesEnumerationFilePath)) { return; } foreach (string protectedFilePath in File.ReadAllLines(DataAccess.ProtectingFilesEnumerationFilePath)) { ProtectedFileEntry protectedFile = DataAccess.ReadProtectedFileContent(protectedFilePath); if (protectedFile == null) { continue; } protectedFile.onFileChanged += ProtectedFile_onFileChanged; protectedFile.onFileRenamed += ProtectedFile_onFileRenamed; ProtectedFileEntries.Add(protectedFile); } if (ProtectedFileEntries.Count == 0) { File.Delete(DataAccess.ProtectingFilesEnumerationFilePath); } }
private void ProtectedFile_onFileRenamed(ProtectedFileEntry protectedFile, RenamedEventArgs eventArgs) { onProtectedFileRenamed(protectedFile, eventArgs); }
private void ProtectedFile_onFileChanged(ProtectedFileEntry protectedFile, FileSystemEventArgs eventArgs) { onProtectedFileChanged(protectedFile, eventArgs); }