Also dein Code funktioniert nicht ich hab 3 dateien mit o byte in drei verschiedenen verzeicnissen mit dem gleichen namen und mir werde Dateien die definitiv nicht doppelt sind gelistet.
Hier mein code:
double SizeOfAllFiles = 0;
string Unit = "Byte";
int NumberOfFiles = 0;
List<string> arrayDirectory = new List<string>();
List<string> arrayFileName = new List<string>();
List<string> arrayLength = new List<string>();
int row = 0;
dataGridView.Rows.Clear();
dataGridView.ClearSelection();
folderBrowserDialog.ShowDialog();
toolStripStatusLabel.Text = "Suchlauf wurde gestartet. Bitte warten.";
string[] FilesInDir = Directory.GetFiles(folderBrowserDialog.SelectedPath, "*", SearchOption.AllDirectories);
foreach (string myFile in FilesInDir)
{
FileInfo File = new FileInfo(Path.GetFullPath(myFile)); // Extrahiert die Dateiinformationen aus der aktuellen Datei
arrayDirectory.Add(File.Directory.ToString());
arrayFileName.Add(File.Name.ToString());
arrayLength.Add(File.Length.ToString());
SizeOfAllFiles += File.Length;
NumberOfFiles++;
}
DataGridViewRowCollection oRows = dataGridView.Rows;
for (int i = 0; i < arrayFileName.Count; i++)
{
for (int j = i + 1; j < arrayFileName.Count; j++)
{
if (arrayFileName[i] == arrayFileName[j])
{
dataGridView.Rows.Add();
oRows[row].Cells[0].Value = arrayDirectory[j];
oRows[row].Cells[1].Value = arrayFileName[j];
oRows[row].Cells[2].Value = arrayLength[j];
row++;
}
}
}
while (SizeOfAllFiles ≥ 1024)
{
SizeOfAllFiles = SizeOfAllFiles / 1024;
if (Unit == "MB")
Unit = "GB";
if (Unit == "KB")
Unit = "MB";
if (Unit == "Byte")
Unit = "KB";
}
if (Unit == "KB" && SizeOfAllFiles ≤ 10)
SizeOfAllFiles = Math.Round(SizeOfAllFiles, 2);
if (Unit == "KB" && SizeOfAllFiles > 10)
SizeOfAllFiles = Math.Round(SizeOfAllFiles, 1);
if (Unit == "MB" && SizeOfAllFiles ≤ 10)
SizeOfAllFiles = Math.Round(SizeOfAllFiles, 2);
if (Unit == "MB" && SizeOfAllFiles > 10)
SizeOfAllFiles = Math.Round(SizeOfAllFiles, 1);
if (Unit == "GB" && SizeOfAllFiles ≤ 10)
SizeOfAllFiles = Math.Round(SizeOfAllFiles, 2);
if (Unit == "GB" && SizeOfAllFiles > 10)
SizeOfAllFiles = Math.Round(SizeOfAllFiles, 1);
labelNumberOfFolders.Text = "Anzahl der Unterordner: " + Directory.GetDirectories(folderBrowserDialog.SelectedPath, "*", SearchOption.AllDirectories).Length.ToString();
labelNumberOfFiles.Text = "Anzahl der Dateien: " + NumberOfFiles.ToString();
labelSizeOfAllFiles.Text = "Gesamtgröße: " + SizeOfAllFiles.ToString() + " " + Unit;
toolStripStatusLabel.Text = "Suchlauf erfolgreich abgeschlossen.";
Danke für eure hilfe.
Gruß Steffen