public static void CreateKeyfile(string filePath) { NullChecks.Strings(filePath); const string keyfileExtension = ".key"; // Generate a random name if the path is a directory if (Directory.Exists(filePath)) { string randomFileName = AnonymousRename.GenerateRandomFileName() + keyfileExtension; filePath = Path.Combine(filePath, randomFileName); } if (!File.Exists(filePath)) { // Append .key extension if missing if (!filePath.EndsWith(keyfileExtension, StringComparison.InvariantCulture)) { filePath += keyfileExtension; } Keyfiles.GenerateKeyfile(filePath); } else { Console.WriteLine("Error: A file with this name already exists."); } }
private static string GetEncryptedFilePath(string filePath) { if (Globals.AnonymousRename == true) { bool success = OriginalFileName.AppendOriginalFileName(filePath); if (success == true) { return(AnonymousRename.GetAnonymousFileName(filePath) + Constants.EncryptedExtension); } } return(filePath + Constants.EncryptedExtension); }
private static void DirectoryEncryption(bool encryption, string folderPath, byte[] passwordBytes) { try { // Anonymise directory names before encryption (if enabled) folderPath = AnonymousRename.AnonymiseDirectories(encryption, folderPath); // Get all files in all directories string[] files = Directory.GetFiles(folderPath, "*.*", SearchOption.AllDirectories); // -1 for the selected directory Globals.TotalCount += files.Length - 1; foreach (string filePath in files) { CallEncryption(encryption, filePath, passwordBytes); } // Deanonymise directory names after decryption (if enabled) AnonymousRename.DeanonymiseDirectories(encryption, folderPath); } catch (Exception ex) when(ExceptionFilters.FileAccessExceptions(ex)) { Logging.LogException(ex.ToString(), Logging.Severity.High); DisplayMessage.Error(folderPath, ex.GetType().Name, "Unable to get files in the directory."); } }