private void pib_editFilenameAccept_Click(object sender, EventArgs e) { if (txb_editFilename.Text.Length < 1) { MessageBox.Show("Der Dateiname darf nicht leer sein", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } string[] temp = Files[editIndex].Filename.Split('.'); Files[editIndex] = new EncryptedFile(txb_editFilename.Text + "." + temp[temp.Length - 1], Files[editIndex].Path); File.WriteAllBytes(User.Path + "\\files.dat", Files.SerializeFileList().Encrypt(User.Token)); RefreshLists(); pib_editFilenameBack_Click(null, null); }
private void AddFiles(string[] FileNames) { bool delete = false; if (MessageBox.Show("Sollen die Dateien nach dem hinzufügen gelöscht werden?", "Löschen", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) { delete = true; } Loc = Location; Working.Start(); foreach (string f in FileNames) { string encFilename; do { encFilename = User.Path + "\\File" + new Random().Next(100000, 999999) + ".file"; } while (File.Exists(encFilename)); FileStream newFile = File.Create(encFilename); FileStream oldFile = new FileStream(f, FileMode.Open); PasswordDeriveBytes pdb = new PasswordDeriveBytes(User.Token, new byte[0]); RijndaelManaged rm = new RijndaelManaged(); CryptoStream cs = new CryptoStream(newFile, rm.CreateEncryptor(pdb.GetBytes(32), pdb.GetBytes(16)), CryptoStreamMode.Write); oldFile.CopyTo(cs); cs.FlushFinalBlock(); cs.Close(); oldFile.Close(); newFile.Close(); if (delete) { File.Delete(f); } EncryptedFile e = new EncryptedFile(Path.GetFileName(f), encFilename); Files.Add(e); File.WriteAllBytes(User.Path + "\\files.dat", Files.SerializeFileList().Encrypt(User.Token)); RefreshLists(); } CloseWorking = true; }
private void ExportFiles(string folder) { Loc = Location; Working.Start(); foreach (ListViewItem item in lvw_files.SelectedItems) { EncryptedFile enc = Files[lvw_files.Items.IndexOf(item)]; FileStream encFile = File.Open(Path.GetFullPath(enc.Path), FileMode.Open); FileStream newFile = new FileStream(folder + enc.Filename, FileMode.Create); PasswordDeriveBytes pdb = new PasswordDeriveBytes(User.Token, new byte[0]); RijndaelManaged rm = new RijndaelManaged(); CryptoStream cs = new CryptoStream(encFile, rm.CreateDecryptor(pdb.GetBytes(32), pdb.GetBytes(16)), CryptoStreamMode.Read); cs.CopyTo(newFile); cs.Close(); encFile.Close(); newFile.Close(); } CloseWorking = true; }