Една скучна делнична вечер си търсех занимавка и реших да преровя музиката която имам.
Доста ме подразни, когато видях, че в повечето папки имената на песните изглеждат
103-pitbull_featuring_chris_brown_-_international_love.mp3
Говоря за този номер отпред и многото долни черти. И тогава прозрението ми проговори: “Абе, аз немога ли да си напиша програмка, която влиза в папката и ми ги преименува”. И в интерес на истината се получи несложно решение на C#.
Първата стъпка естествено е да се съберат имената на всички файлове, което лесно става с Directory.GetFile(string path). Тази функция връща string[] с имената на всички файлове в папката.
След като имам имената реших да потърся някаква функция, която да хваща директно файл по името и да го преименува. За съжаление се оказа, че такава има само на VB. Проверих изобщо какви функции за работа с файлове има в C# и единствената, която имаше общо с име на файл изобщо, беше функция за копиране. В крайна сметка и това ми свърши работа. Мисля, че вече е ясно и как изглежда решението ми, но все пак ще дам код.
- Directory path е очевидно, че е директорията с музиката.
- Characters to remove from the front са символите, които да се махнат в началото (някакви цифри или букви, които дефакто нямат връзка с името на песента).
- След като се извлекат “старите имена” те се орязват, така че нежеланите номера отпред да паднат. Тука cut пази това число, а всъшност се “режат” 1+cut (1 е за \, а cut е за действителния траш).
- Fix() – очевидно е какво прави.
- Файловете се прекопирват в директорията и просто се изтриват старите файлове.
В крайна сметка програмката работи и е доста сполучлива. Ето и линк за сваляне.
П.С. Важно е да се отбележи, че маха еднакъв брой символи от името на ВСЕКИ фаил. При файлове с различна дължина на префикса програмата не дава ефикасни резултати.