All output is in Swedish.
Download binary
using System; using System.Collections.Generic; using System.Text; using System.IO; namespace se.gotling.tools { class RandomizeFileNames { private static string extension = ".jpg"; static void Main(string[] args) { string fullPath = System.Reflection.Assembly.GetAssembly(typeof(RandomizeFileNames)).Location; string directory = Path.GetDirectoryName(fullPath); Console.WriteLine("Katalog: {0}\n" ,directory); string[] fileNames = Directory.GetFiles(directory, "*" + extension, SearchOption.AllDirectories); if (fileNames.Length > 0) { Console.WriteLine("Hittade {0} filer med filändelsen {1}\n", fileNames.Length, extension); } else { Console.WriteLine("Inga filer hittades med filändelsen {0}\nTrycka på valfri tangent för att avsluta", extension); Console.ReadKey(true); return; } Console.WriteLine("Tryck \"r\" för att slumpa fram nya filnamn\n"); if(!Console.ReadKey(true).Key.Equals(ConsoleKey.R)) { Console.WriteLine("Avbröt ändring av filnamn. Trycka på valfri tangent för att avsluta"); Console.ReadKey(true); return; } foreach (string fileName in fileNames) { string filePath = Path.GetDirectoryName(fileName); while (true) { string newFileName = filePath + Path.DirectorySeparatorChar + Path.GetRandomFileName().Split('.')[1] + extension; if (!File.Exists(newFileName)) { File.Move(fileName, newFileName); Console.WriteLine("Före: {0}\t Efter: {1}", fileName.Remove(0, directory.Length + 1), newFileName.Remove(0, directory.Length + 1)); break; } } } Console.WriteLine("\n\nFärdig! Trycka på valfri tangent för att avsluta"); Console.ReadKey(true); } } }