Хорошо, поэтому на моей работе мы делаем много форматов, и чтобы сэкономить время, я думал, что сделаю простое консольное приложение 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();
}
Если вам нужно, чтобы увидеть раздел фотографий, дайте мне знать, и я могу обновить свой вопрос, я не добавлял, потому что я не хочу, чтобы добавить слишком много коды.
Спасибо!
'Environment.GetFolderPath (Environment.SpecialFolder.MyMusic)' отлично работает на моей машине W7. Вы уверены, что папка существует и/или у вас есть разрешение на нее? Попробуйте запустить код в качестве администратора. – keyboardP
@keyboardP просто попытался использовать режим администратора и перешел через код, похоже, что он получает путь 'G: \\ DOWLOADEDDATA \ music \ Kalimba.mp3', я думаю, это странно, потому что все, что я сделал, это изменение' Environment.SpecialFolder.MyPictures' to 'MyMusic' – Werdna
Я удаляю одну из тире в' G: \\ DOWLOADEDDATA \ music \ Kalimba.mp3', все еще выдавая ту же ошибку без или с помощью дополнительного '/' try un-ticking 'read only' свойств музыкальных папок, по-прежнему нет. – Werdna