Задать вопрос
Alex_Zimin
@Alex_Zimin
Ученик n-ного класса

Почему при переименовании файл исчезает?

Здравствуйте! При попытке переименования файла он, после завершения программы, исчезает. Никаких ошибок не выдаёт. Немного о программе: она должна брать файл и переименовывать его, на основе метаданных.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TagLib;
using System.IO;

namespace Cache_vk
{
    class Program
    {
        static void Main(string[] args)
        {
            // Указываем в переменной путь к файлу
            var audiofile = @"C:\Users\Admin\Desktop\Job\simple\simple cache\-32268250_233953835.mp3";
            // Даём почитать его библиотеке TagLib
            var audioFileInfo = TagLib.File.Create(audiofile);
            // В эти 2 переменные будут помещаться название трека и его исполнитель, которые будут прочитаны из метаданных mp3 файла.
            string Title = audioFileInfo.Tag.Title; ;
            string Artist = String.Join(", ", audioFileInfo.Tag.Performers);
            // нашёл этот кусочек в интернете,чтобы можно было затереть все символы в названии файла до последнего индекса.(не совсем понимаю, для чего это)
            var ind = audiofile.LastIndexOf('\\');
            // А здесь собственнно переименовываю, но после завершения программы исходный файл исчезает.
            System.IO.File.Move(audiofile, audiofile.Remove(ind)+Artist+"-"+Title+".mp3");
        }
    }
}
  • Вопрос задан
  • 1756 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@JuniorNoobie
Сижу в поддержке, пишу мелкие проекты
Слеш забыли один. Вот тут:
System.IO.File.Move(audiofile, audiofile.Remove(ind)+"\\"+Artist+"-"+Title+".mp3");
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
DmitryITWorksMakarov
@DmitryITWorksMakarov
Замените последнюю строчку на
var audiofile2 = audiofile.Remove(ind)+Artist+"-"+Title+".mp3";
System.IO.File.Move(audiofile, audiofile2);


На последней строчке (там где Move) установите breakpoint и сравните содержимое переменных: audiofile и audiofile2. У вас файл перемещается в папку содержащую текущую. В данном случае в "C:\Users\Admin\Desktop\Job\simple\".
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы