コード例 #1
0
        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);
            }
        }
コード例 #2
0
        public void RestoreFile(string fileName)
        {
            ProtectedFileEntry targetProtectedFile = GetProtectedFileByName(fileName);

            try
            {
                targetProtectedFile.RestoreContent();
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, e.Source);
            }
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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());
        }
コード例 #5
0
 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);
     }
 }
コード例 #6
0
 private void ProtectedFile_onFileRenamed(ProtectedFileEntry protectedFile, RenamedEventArgs eventArgs)
 {
     onProtectedFileRenamed(protectedFile, eventArgs);
 }
コード例 #7
0
 private void ProtectedFile_onFileChanged(ProtectedFileEntry protectedFile, FileSystemEventArgs eventArgs)
 {
     onProtectedFileChanged(protectedFile, eventArgs);
 }