90 lines
4.0 KiB
C#
90 lines
4.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace Test_ChangeOrder
|
|
{
|
|
internal class MoveToTab
|
|
{
|
|
public List<List<String>> Move(string toTab, List<List<string>> allValues, string selectedValue)
|
|
{
|
|
//List<List<String>> allValues = new List<List<String>>();
|
|
List<string> valuesTab1 = new List<string>();
|
|
List<string> valuesTab2 = new List<string>();
|
|
string destinationValue = "";
|
|
string fileName = "";
|
|
string tempFileName = "";
|
|
|
|
|
|
valuesTab1.AddRange(allValues[0]);
|
|
valuesTab2.AddRange(allValues[1]);
|
|
|
|
var renameFiles = new RenameFiles();
|
|
|
|
if (toTab == "Tab 1")
|
|
{
|
|
//Übergebenen Wert aus der Liste von 'Tab 2' entfernen
|
|
valuesTab2.Remove(selectedValue);
|
|
//Zu verschiebende Datei nach 'C:\temp' verschieben, damit es kein Problem mit einer ev. vorhandenen Namensgleichheit gibt
|
|
fileName = Path.GetFileName(selectedValue);
|
|
tempFileName = "C:\\temp\\" + fileName;
|
|
//Datei von Verzeichnis 'Tab 2' ins Verzeichnis 'C:\temp' verschieben
|
|
File.Move(selectedValue, tempFileName);
|
|
//Die Einträge der Liste von 'Tab 2' umbenennen
|
|
renameFiles.Rename(valuesTab2);
|
|
//Verzeichnis 'Tab 2' in Verzeichnis 'Tab 1' umbenennen
|
|
if (valuesTab1.Count < 10)
|
|
{
|
|
destinationValue = Path.GetDirectoryName(selectedValue) + "\\" + "0" + (valuesTab1.Count + 1) + fileName.Remove(0, fileName.IndexOf(" "));
|
|
}
|
|
else
|
|
{
|
|
destinationValue = Path.GetDirectoryName(selectedValue) + "\\" + (valuesTab1.Count + 1) + fileName.Remove(0, fileName.IndexOf(" "));
|
|
}
|
|
destinationValue = destinationValue.Replace("Tab 2", "Tab 1");
|
|
//Übergebenen Wert in der Liste von 'Tab 1' ans Ende setzen
|
|
valuesTab1.Add(destinationValue);
|
|
//Datei von Verzeichnis 'Tab 2' ins Verzeichnis 'Tab 1' verschieben
|
|
File.Move(tempFileName, destinationValue);
|
|
}
|
|
else
|
|
{
|
|
//Übergebenen Wert aus der Liste von 'Tab 1' entfernen
|
|
valuesTab1.Remove(selectedValue);
|
|
//Zu verschiebende Datei nach 'C:\temp' verschieben, damit es kein Problem mit einer ev. vorhandenen Namensgleichheit gibt
|
|
fileName = Path.GetFileName(selectedValue);
|
|
tempFileName = "C:\\temp\\" + fileName;
|
|
//Datei von Verzeichnis 'Tab 1' ins Verzeichnis 'C:\temp' verschieben
|
|
File.Move(selectedValue, tempFileName);
|
|
//Die Einträge der Liste von 'Tab 1' umbenennen
|
|
renameFiles.Rename(valuesTab1);
|
|
//Verzeichnis 'Tab 1' in Verzeichnis 'Tab 2' umbenennen
|
|
if (valuesTab2.Count < 10)
|
|
{
|
|
destinationValue = Path.GetDirectoryName(selectedValue) + "\\" + "0" + (valuesTab2.Count + 1) + fileName.Remove(0, fileName.IndexOf(" "));
|
|
}
|
|
else
|
|
{
|
|
destinationValue = Path.GetDirectoryName(selectedValue) + "\\" + (valuesTab2.Count + 1) + fileName.Remove(0, fileName.IndexOf(" "));
|
|
}
|
|
destinationValue = destinationValue.Replace("Tab 1", "Tab 2");
|
|
//Übergebenen Wert in der Liste von 'Tab 2' ans Ende setzen
|
|
valuesTab2.Add(destinationValue);
|
|
//Datei von Verzeichnis 'Tab 1' ins Verzeichnis 'Tab 2' verschieben
|
|
File.Move(tempFileName, destinationValue);
|
|
}
|
|
|
|
//Liste von 'Tab 1' und von 'Tab 2' in 'AllValues' zusammenfassen
|
|
allValues.Clear();
|
|
allValues.Add(valuesTab1);
|
|
allValues.Add(valuesTab2);
|
|
|
|
return allValues;
|
|
}
|
|
}
|
|
}
|