You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

377 lines
13 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace Rename2
{
public partial class Rename2 : Form
{
public Rename2()
{
InitializeComponent();
}
private void bÖffnen_Click(object sender, EventArgs e)
{
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
tbVerzeichnis.Text = folderBrowserDialog1.SelectedPath;
UpdatelvVerzeichnis(folderBrowserDialog1.SelectedPath);
}
lvQuelle.Items.Clear();
}
void UpdatelvVerzeichnis(string path)
{
DirectoryInfo di = new DirectoryInfo(path);
if (di.Exists)
{
lvVerzeichnis.Enabled = true;
lvVerzeichnis.Items.Clear();
FileInfo[] fiArr = di.GetFiles();
foreach (FileInfo fi in fiArr)
{
lvVerzeichnis.Items.Add(fi.Name);
lvVerzeichnis.Items[lvVerzeichnis.Items.Count - 1].SubItems.Add(Convert.ToString(fi.Length));
}
}
else
{
lvVerzeichnis.Items.Clear();
lvVerzeichnis.Items.Add("Kann Ordner nicht finden");
lvVerzeichnis.Enabled = false;
}
}
private void cbFilter_CheckedChanged(object sender, EventArgs e)
{
tbFilter.Enabled = cbFilter.Checked;
}
private void bÜbertragen_Click(object sender, EventArgs e)
{
foreach (ListViewItem i in lvVerzeichnis.SelectedItems)
{
lvVerzeichnis.Items.Remove(i);
lvQuelle.Items.Add(i);
}
}
private void bAlleÜbertragen_Click(object sender, EventArgs e)
{
if (cbFilter.Checked && tbFilter.Text != "")
{
foreach (ListViewItem i in lvVerzeichnis.Items)
{
if (i.Text.IndexOf(tbFilter.Text) != -1)
{
lvVerzeichnis.Items.Remove(i);
lvQuelle.Items.Add(i);
}
}
}
else
{
foreach (ListViewItem i in lvVerzeichnis.Items)
{
lvVerzeichnis.Items.Remove(i);
lvQuelle.Items.Add(i);
}
}
}
private void bAlleEntfernen_Click(object sender, EventArgs e)
{
if (cbFilter.Checked && tbFilter.Text != "")
{
foreach (ListViewItem i in lvQuelle.Items)
{
if (i.Text.IndexOf(tbFilter.Text) != -1)
{
lvQuelle.Items.Remove(i);
lvVerzeichnis.Items.Add(i);
}
}
}
else
{
foreach (ListViewItem i in lvQuelle.Items)
{
lvQuelle.Items.Remove(i);
lvVerzeichnis.Items.Add(i);
}
}
}
private void bEntfernen_Click(object sender, EventArgs e)
{
foreach (ListViewItem i in lvQuelle.SelectedItems)
{
lvQuelle.Items.Remove(i);
lvVerzeichnis.Items.Add(i);
}
}
private void bNachOben_Click(object sender, EventArgs e)
{
//Erstellt ein ListViewItem Array um die selektierten ListViewItems
//aufnehmen zu können
ListViewItem[] SelectedItemsArr = new ListViewItem[lvQuelle.SelectedItems.Count];
//Erstellt ein weiteres ListViewItem Arry für alle List View Items nach
//der Selektion mit entsprechender Größe (Gesamtzahl aller Items minus
//dem Index des Letztmarkierten Eintrags)
ListViewItem[] AfterItemsArr = new ListViewItem[lvQuelle.Items.Count
- lvQuelle.SelectedItems[lvQuelle.SelectedItems.Count - 1].Index - 1];
//Kopiert alle markierten Items in das entsprehende Array
lvQuelle.SelectedItems.CopyTo(SelectedItemsArr, 0);
//Kopiert alle Items nach der Selektion in das entsprechende Array
foreach (ListViewItem i in lvQuelle.Items)
{
if (i.Index > lvQuelle.SelectedItems[lvQuelle.SelectedItems.Count - 1].Index)
{
//Subtrahiert den Index des ersten unmarkierten Eintrags vom aktuellen Index um die
//richtige Position im Array zu erhalten
AfterItemsArr[i.Index - lvQuelle.SelectedItems[lvQuelle.SelectedItems.Count - 1].Index - 1] = i;
}
}
//Löscht alle Einträge nach der Selektion aus dem ListView
foreach (ListViewItem i in lvQuelle.Items)
{
if (i.Index > lvQuelle.SelectedItems[lvQuelle.SelectedItems.Count - 1].Index)
{
i.Remove();
}
}
//Löscht alle markierten Einträge
foreach (ListViewItem i in lvQuelle.Items)
{
if (i.Selected)
{
i.Remove();
}
}
//Erstellt ein Temporäres Item und kopiert das letzte Item des momentanen ListViews
//rein um das Item dann aus dem ListView zu löschen
ListViewItem TempItem = lvQuelle.Items[lvQuelle.Items.Count - 1];
lvQuelle.Items[lvQuelle.Items.Count - 1].Remove();
//Fügt dem ListView alle Einträge aus dem Array mit den Selektierten Items hinzu
foreach (ListViewItem i in SelectedItemsArr)
{
lvQuelle.Items.Add(i);
}
//Hängt das TempItem an
lvQuelle.Items.Add(TempItem);
//Fügt alle Einträge des Arrays mit Items nach der anfänglichen Selektion ein
foreach (ListViewItem i in AfterItemsArr)
{
lvQuelle.Items.Add(i);
}
bNachUnten.Enabled = true;
if (lvQuelle.SelectedItems[0].Index == 0)
{
bNachOben.Enabled = false;
}
else
{
bNachOben.Enabled = true;
}
}
private void lvQuelle_SelectedIndexChanged(object sender, EventArgs e)
{
if (lvQuelle.SelectedItems.Count == 0)
{
bNachOben.Enabled = false;
bNachUnten.Enabled = false;
}
else
{
if (lvQuelle.SelectedItems[0].Index == 0)
{
bNachOben.Enabled = false;
}
else
{
bNachOben.Enabled = true;
}
if (lvQuelle.SelectedItems[lvQuelle.SelectedItems.Count - 1].Index == lvQuelle.Items.Count - 1)
{
bNachUnten.Enabled = false;
}
else
{
bNachUnten.Enabled = true;
}
}
}
private void bNachUnten_Click(object sender, EventArgs e)
{
ListViewItem[] SelectedItemsArr = new ListViewItem[lvQuelle.SelectedItems.Count];
ListViewItem[] AfterItemsArr = new ListViewItem[lvQuelle.Items.Count
- lvQuelle.SelectedItems[lvQuelle.SelectedItems.Count - 1].Index - 2];
lvQuelle.SelectedItems.CopyTo(SelectedItemsArr, 0);
ListViewItem TempItem = lvQuelle.Items[lvQuelle.SelectedItems[lvQuelle.SelectedItems.Count - 1].Index + 1];
lvQuelle.Items[lvQuelle.SelectedItems[lvQuelle.SelectedItems.Count - 1].Index + 1].Remove();
foreach (ListViewItem i in lvQuelle.Items)
{
if (i.Index > lvQuelle.SelectedItems[lvQuelle.SelectedItems.Count - 1].Index)
{
AfterItemsArr[i.Index - lvQuelle.SelectedItems[lvQuelle.SelectedItems.Count - 1].Index - 1] = i;
}
}
foreach (ListViewItem i in lvQuelle.Items)
{
if (i.Index > lvQuelle.SelectedItems[lvQuelle.SelectedItems.Count - 1].Index)
{
i.Remove();
}
}
foreach (ListViewItem i in lvQuelle.Items)
{
if (i.Selected)
{
i.Remove();
}
}
lvQuelle.Items.Add(TempItem);
foreach (ListViewItem i in SelectedItemsArr)
{
lvQuelle.Items.Add(i);
}
foreach (ListViewItem i in AfterItemsArr)
{
lvQuelle.Items.Add(i);
}
bNachOben.Enabled = true;
if (lvQuelle.SelectedItems[lvQuelle.SelectedItems.Count - 1].Index == lvQuelle.Items.Count - 1)
{
bNachUnten.Enabled = false;
}
else
{
bNachUnten.Enabled = true;
}
}
private void bAktualisieren_Click(object sender, EventArgs e)
{
if (tbVerzeichnis.Text != "")
{
UpdatelvVerzeichnis(tbVerzeichnis.Text);
lvQuelle.Items.Clear();
}
}
private void nudVon_ValueChanged(object sender, EventArgs e)
{
nudBis.Value = lvQuelle.Items.Count + nudVon.Value - 1;
if (nudVon.Value.ToString().Length == 1)
{
lVorschau.Text = tbVorne.Text + "0" + nudVon.Value.ToString() + tbHinten.Text;
}
else
{
lVorschau.Text = tbVorne.Text + nudVon.Value.ToString() + tbHinten.Text;
}
}
private void bTesten_Click(object sender, EventArgs e)
{
lvZiel.Items.Clear();
foreach(ListViewItem i in lvQuelle.Items)
{
ListViewItem Temp = (ListViewItem)i.Clone();
lvZiel.Items.Add(Temp);
}
for (int i = 0; i < lvZiel.Items.Count; i++)
{
string temp = (nudVon.Value + i).ToString();
if (temp.Length == 1)
{
lvZiel.Items[i].SubItems[1].Text = lvZiel.Items[i].SubItems[0].Text;
lvZiel.Items[i].SubItems[0].Text = tbVorne.Text + "0" + temp + tbHinten.Text;
}
else
{
lvZiel.Items[i].SubItems[1].Text = lvZiel.Items[i].SubItems[0].Text;
lvZiel.Items[i].SubItems[0].Text = tbVorne.Text + temp + tbHinten.Text;
}
}
}
private void bUmbenennen_Click(object sender, EventArgs e)
{
foreach (ListViewItem i in lvZiel.Items)
{
FileInfo fi = new FileInfo(tbVerzeichnis.Text + "\\" + i.SubItems[1].Text);
DirectoryInfo di = new DirectoryInfo(tbVerzeichnis.Text);
if (di.GetFiles(i.SubItems[0].Text).Length == 0)
{
fi.MoveTo(tbVerzeichnis.Text + "\\"+ i.SubItems[0].Text);
}
else
{
MessageBox.Show("hiho");
}
}
lvQuelle.Items.Clear();
lvZiel.Items.Clear();
UpdatelvVerzeichnis(tbVerzeichnis.Text);
}
private void tbVorne_TextChanged(object sender, EventArgs e)
{
if (nudVon.Value.ToString().Length == 1)
{
lVorschau.Text = tbVorne.Text + "0" + nudVon.Value.ToString() + tbHinten.Text;
}
else
{
lVorschau.Text = tbVorne.Text + nudVon.Value.ToString() + tbHinten.Text;
}
}
private void tbHinten_TextChanged(object sender, EventArgs e)
{
if (nudVon.Value.ToString().Length == 1)
{
lVorschau.Text = tbVorne.Text + "0" + nudVon.Value.ToString() + tbHinten.Text;
}
else
{
lVorschau.Text = tbVorne.Text + nudVon.Value.ToString() + tbHinten.Text;
}
}
}
}