2016-07-17 3 views
0

Хорошо, поэтому на моей работе мы делаем много форматов, и чтобы сэкономить время, я думал, что сделаю простое консольное приложение C#, которое скопирует данные пользователей на USB-порт или портативный жесткий диск, чтобы сэкономить нам время.

При копировании содержимого в папку с картинками
string SourcePathPIC = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
Нет проблем, однако при попытке скопировать содержимое музыкальных папок оно сообщает мне, что оно Can't find path, но при попытке использовать ту же программу в Windows 10 она работает.

Музыкальная часть файла Cs.

Environment.SpecialFolder.MyMusic не находит местоположение W7

 //MUSIC 
      try 
      { 
       Console.WriteLine("Downloading Music..."); 

       string SourcePathMUSIC = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic); 

       string DestinationPathMUSIC = DRIVELOCATION + @"\DOWNLOADEDDATA\music"; 
       foreach (string dirPath in Directory.GetDirectories(SourcePathMUSIC, "*", System.IO.SearchOption.AllDirectories)) 
       { 
        Directory.CreateDirectory(dirPath.Replace(SourcePathMUSIC, DestinationPathMUSIC)); 
       } 

       foreach (string newPath in Directory.GetFiles(SourcePathMUSIC, "*.*", System.IO.SearchOption.AllDirectories)) 
       { 
        File.Copy(newPath, newPath.Replace(SourcePathMUSIC, DestinationPathMUSIC), true); 
        Console.WriteLine(newPath); 
       } 
       Console.WriteLine("------------------------------------------------------------------"); 
       Console.ForegroundColor = ConsoleColor.Green; 
       Console.WriteLine("Music Downloaded"); 
       Console.ForegroundColor = CONSOLECOLOUR; 
       Console.WriteLine("------------------------------------------------------------------"); 
      } 

      catch 
      { 
       string SourcePathMUSIC = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic); 
       string DestinationPathMUSIC = DRIVELOCATION + @"\DOWNLOADEDDATA\music"; 
       foreach (string dirPath in Directory.GetDirectories(SourcePathMUSIC, "*", System.IO.SearchOption.TopDirectoryOnly)) 
       { 
        Directory.CreateDirectory(dirPath.Replace(SourcePathMUSIC, DestinationPathMUSIC)); 
       } 

       foreach (string newPath in Directory.GetFiles(SourcePathMUSIC, "*.*", System.IO.SearchOption.TopDirectoryOnly)) 
       { 
        File.Copy(newPath, newPath.Replace(SourcePathMUSIC, DestinationPathMUSIC), true); 
        Console.WriteLine(newPath); 
       } 
       Console.ForegroundColor = ConsoleColor.Black; 
       Console.WriteLine("Unable To Copy Some Files, User Has Proctection On Music, You Will Need To Manually Copy The Remaining"); 
      } 
      Console.ForegroundColor = CONSOLECOLOUR; 
      Console.WriteLine("------------------------------------------------------------------"); 
      Console.ForegroundColor = CONSOLECOLOUR; 
      Console.WriteLine("      DOWNLOAD COMPLETE...."); 
      Console.WriteLine("------------------------------------------------------------------"); 
      Console.ReadKey(); 
     } 
     catch(Exception ex) 
     { 
      var CONSOLECOLOR = Console.ForegroundColor; 
      Console.ForegroundColor = ConsoleColor.Red; 
      Console.WriteLine(""); 
      Console.WriteLine(ex.Message); 
      Console.ForegroundColor = CONSOLECOLOR; 
      //System.Threading.Thread.Sleep(2000); 
      //Environment.Exit(1); 
      Console.ReadKey(); 
     } 



Если вам нужно, чтобы увидеть раздел фотографий, дайте мне знать, и я могу обновить свой вопрос, я не добавлял, потому что я не хочу, чтобы добавить слишком много коды.
Спасибо!

+0

'Environment.GetFolderPath (Environment.SpecialFolder.MyMusic)' отлично работает на моей машине W7. Вы уверены, что папка существует и/или у вас есть разрешение на нее? Попробуйте запустить код в качестве администратора. – keyboardP

+0

@keyboardP просто попытался использовать режим администратора и перешел через код, похоже, что он получает путь 'G: \\ DOWLOADEDDATA \ music \ Kalimba.mp3', я думаю, это странно, потому что все, что я сделал, это изменение' Environment.SpecialFolder.MyPictures' to 'MyMusic' – Werdna

+0

Я удаляю одну из тире в' G: \\ DOWLOADEDDATA \ music \ Kalimba.mp3', все еще выдавая ту же ошибку без или с помощью дополнительного '/' try un-ticking 'read only' свойств музыкальных папок, по-прежнему нет. – Werdna

ответ

0

ОК, я отправляю свой ответ на случай, если кто-то другой столкнется с тем же вопросом, который у меня был.

В итоге я изменил структуру с 3.5 до 4.6.1, а затем переключил фрейм обратно на 3.5 и ура, он работает! ..... WEIRD! так как я не менял никакого кода.

 Смежные вопросы

  • Нет связанных вопросов^_^