Random File Name: come disordinare una cartella!
Contenuti
Venerdì sera, World of Warcraft a tutto schermo sul mio portatile, il mio Shaman Healer nel pieno di un raid ed il telefono che mi squilla. Rispondo e mi sento chiedere la seguente cosa: **"hai un programmino per rendere RANDOM il nome dei file in una cartella? Se non ricordo male mi dicevi di averlo fatto per te"**. E' vero, il programma lo avevo fatto per me in quanto il mio lettore mp3 aveva un random inutile e così rinominavo tutti i file in maniera assurda. Purtroppo quel programma è andato perso in una formattazione. Preso dai sensi di colpa di avere detto "no e sto anche giocando" ho chiuso WoW ed ho aperto VS2019.
*Randomize File Name by Folder* (cs) ```private void RandomizeFileNames(string folderSource, string folderOutput, string[] renameOnlyExt) {
string[] files = (from f in Directory.GetFiles(folderSource)
select f).ToArray();
renameOnlyExt = renameOnlyExt
.Select(x => x.ToLower())
.ToArray();
if (Directory.Exists(folderOutput) == false)
{
Directory.CreateDirectory(folderOutput);
}
foreach (var item in files)
{
var itemLower = item.ToLower();
FileInfo fi = new FileInfo(item);
if (Array.IndexOf(renameOnlyExt, fi.Extension) == -1)
{
continue;
}
string newFileName = $"{Guid.NewGuid()}";
using (var md5 = MD5.Create())
{
using (var stream = File.OpenRead(itemLower))
{
var bytes = md5.ComputeHash(stream);
newFileName = $"{new Guid(bytes)}".Replace("-", string.Empty);
}
}
string fileDestination = Path.Combine(folderOutput, $"{newFileName}{fi.Extension}");
if(File.Exists(fileDestination)){
File.Delete(fileDestination);
}
File.Copy(itemLower, fileDestination);
}
}
|
|