using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Linq; using System.Text; using System.Windows.Forms; namespace FilenameUpdater { public partial class FilenameUpdaterMain : Form { public FilenameUpdaterMain() { InitializeComponent(); statusStripStatusLabel.Text = ""; this.Text = Application.ProductName + " v" + Application.ProductVersion; } private void textBoxFileToProcess_DragEnter(object sender, DragEventArgs e) { e.Effect = DragDropEffects.Move; //Mouse cursor graphic changes to let customer know they can drop text in window } private void textBoxFileToProcess_DragDrop(object sender, DragEventArgs e) { string[] mdbPath = (string[])e.Data.GetData(DataFormats.FileDrop); //Grabbing file directory stuff here if (mdbPath.Length > 0) //As long as we grabbed an actual piece of text... { if (labelStep1.ForeColor == Color.Red) { labelStep1.ForeColor = Color.Black; } textBoxFileToProcess.Text = mdbPath[0]; } textBoxFileToProcess.Select(textBoxFileToProcess.Text.Length, 0); textBoxFileToProcess.ScrollToCaret(); fileListBox.Items.Clear(); DirectoryInfo dinfo = new DirectoryInfo(textBoxFileToProcess.Text); FileInfo[] fi = dinfo.GetFiles("*.*"); foreach (FileInfo file in fi) { if ((file.Attributes & FileAttributes.Hidden) == 0) { fileListBox.Items.Add(file.Name); } } statusStripStatusLabel.Text = fi.Count() + " files are in " + textBoxFileToProcess.Text; } private void buttonUpdate_Click(object sender, EventArgs e) { try { int i = 0; DirectoryInfo dinfo = new DirectoryInfo(textBoxFileToProcess.Text); FileInfo[] fi = dinfo.GetFiles("*.*"); foreach (FileInfo file in fi) { if (radButtonUnderscores.Checked) { if (file.Name.Contains(" ")) { try { i++; File.Copy(file.FullName, textBoxFileToProcess.Text + "\\" + file.Name.Replace(" ", "_"), true); File.Delete(file.FullName); } catch (Exception err) { MessageBox.Show("Filename Updater was unable to update " + file.Name + "\r\n" + err.ToString(), "File name update Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } else if (radButtonCustom.Checked) { if (file.Name.Contains(textBoxRemove.Text)) { try { i++; File.Copy(file.FullName, textBoxFileToProcess.Text + "\\" + file.Name.Replace(textBoxRemove.Text, textBoxNewText.Text), true); File.Delete(file.FullName); } catch (Exception err) { MessageBox.Show("Filename Updater was unable to update " + file.Name + "\r\n" + err.ToString(), "File name update Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } statusStripStatusLabel.Text = i + " files were updated in " + textBoxFileToProcess.Text; fileListBox.Items.Clear(); FileInfo[] nfi = dinfo.GetFiles("*.*"); foreach (FileInfo files in nfi) { if ((files.Attributes & FileAttributes.Hidden) == 0) { fileListBox.Items.Add(files.Name); } } } catch (ArgumentException) { statusStripStatusLabel.Text = "No source path was entered above!"; labelStep1.ForeColor = Color.Red; } } private void btnFolderStructCopy_Click(object sender, EventArgs e) { try { string[] dirs = Directory.GetDirectories(@"" + textBoxFileToProcess.Text, "*", SearchOption.AllDirectories); folderBrowserDialog1.Description = "Select an output folder..."; //if (MessageBox.Show("Choose the output path for this copied folder structure...", "Choose a path...", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { string outPath = folderBrowserDialog1.SelectedPath; foreach (string dir in dirs) { string newDir = dir.Replace(@"H:", outPath); if (!Directory.Exists(newDir)) { Directory.CreateDirectory(newDir); } } } } catch (ArgumentException) { statusStripStatusLabel.Text = "No source path was entered above!"; labelStep1.ForeColor = Color.Red; } } private void radButtonUnderscores_Click(object sender, EventArgs e) { if (radButtonUnderscores.Checked) { //radButtonUnderscores.Checked = true; radButtonCustom.Checked = false; labelStep2.Enabled = false; textBoxRemove.Enabled = false; labelStep3.Enabled = false; textBoxNewText.Enabled = false; } } private void radButtonCustom_Click(object sender, EventArgs e) { if (radButtonCustom.Checked) { //radButtonCustom.Checked = true; radButtonUnderscores.Checked = false; labelStep2.Enabled = true; textBoxRemove.Enabled = true; labelStep3.Enabled = true; textBoxNewText.Enabled = true; } } } }