Mam pytanie napisałem kod który jest poniżej. Mam w danych folderze 200 000 plikow wav ktore chce posortowac folderami i przeniesc, rok->miesiac>dzien. po uruchomieniu wywala mi sie i wyskakuje mi komunikat nie moze odnaleŹć pliku ktory rzeczywiscie jest. z reguly pliki beda mniec nazwe 200002021232ef.wav. oraz chce sobie zrobic blokady jak w pierwszych 8 znakach bedzie znak a nie liczba nie przenosi ani nie tworzy folder.
o to moj kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
const string core = @"D:\TEST\";
DirectoryInfo sciezka = new DirectoryInfo(core);
FileInfo[] pliki = sciezka.GetFiles("*.wav");
try{
foreach (FileInfo file in pliki)
{
string frok = file.Name;
string nfrok = frok.Substring(0, 4);
DirectoryInfo sciezka2 = new DirectoryInfo(core + nfrok);
string nfmiesiac = frok.Substring(4, 2);
string nfdzien = frok.Substring(6, 2);
string path_temp = string.Format("{0}\\{1}\\{2}\\", core, nfrok, nfmiesiac);
string pathtemp2 = string.Format("{0}\\{1}\\{2}\\{3}\\", core, nfrok, nfmiesiac, nfdzien);
DirectoryInfo sciezka3 = new DirectoryInfo(path_temp);
DirectoryInfo sciezka4 = new DirectoryInfo(pathtemp2);
if (!sciezka2.Exists)
{
Console.WriteLine("Folder został utworzony o nazwie: " + nfrok + " z powodu jego braku");
sciezka.CreateSubdirectory(nfrok);
}
else
{
Console.WriteLine("Folder o nazwie: " + nfrok + " już istnieje");
}
if (!sciezka3.Exists)
{
Console.WriteLine("folder został utworzony o nazwie: " + nfmiesiac + " z powodu jego braku");
sciezka2.CreateSubdirectory(nfmiesiac);
Console.WriteLine("Folder zostal utworzony o nazwie: " + nfdzien + " z powodu jego braku");
sciezka3.CreateSubdirectory(nfdzien);
}
else
{
Console.WriteLine("Folder o nazwie: " + nfmiesiac + " juz istenieje");
Console.WriteLine("folder o nazwie: " + nfdzien + " juz istnieje");
}
Directory.Move(core+frok,sciezka4+frok);
File.Move(core + frok, pathtemp2);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message, ex);
}
Console.Read();
}
}
}
Moze proponujecie cos do poprawy czy cos, kazda pomoc przyjme