2016-07-17 1 views
0

좋아, 그래서 우리는 많은 포맷을하고 시간을 절약하기 위해 사용자 데이터를 USB 또는 휴대용으로 복사하는 간단한 C# 콘솔 앱을 만들 것이라고 생각했다. 하드 드라이브는 우리 시간을 절약합니다.

그림 폴더의 내용을 복사 할 때
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'를'MyMusic'으로 변경합니다. – Werdna

+0

'G : \\ DOWLOADEDDATA \ music \ Kalimba.mp3'에있는 대시 중 하나를 제거합니다. 음악 폴더 속성의 '읽기 전용', 아직 이동하지 않습니다. – Werdna

답변

0

좋아, 나는 다른 사람이 내가 가진 동일한 문제를 우연히 만나는 경우에 대비하여 내 대답을 게시하고 있습니다.

프레임 워크를 3.5에서 4.6.1로 변경 한 다음 프레임 워크를 3.5로 변경하고 만세, 작동합니다! ..... WEIRD! 이후로 나는 어떤 코드도 변경하지 않았다.