private string ProcessFile(string file, string outPath) { var inPlaylist = ReadPlaylist(file); if (inPlaylist != null) { StartProcessingFile?.Invoke(this, new ProgressEventArgs(file, inPlaylist.Length)); string targetDirectory = string.Empty; if (_targetStorage is MtpStorage) { targetDirectory = HandleContent(file, inPlaylist, AppDomain.CurrentDomain.BaseDirectory, _sourceStorage); CreateTargetPlaylist(inPlaylist, file, targetDirectory, _sourceStorage); return(targetDirectory); } else { targetDirectory = HandleContent(file, inPlaylist, outPath, _targetStorage); CreateTargetPlaylist(inPlaylist, file, targetDirectory, _targetStorage); return(targetDirectory); } } else { StartProcessingFile?.Invoke(this, new ProgressEventArgs(file, 0)); return(string.Empty); } }
private void CopyToDevice(string inPlaylistName, string fromDirectory, string toDirectory) { var targetDirectory = CreateTargetDirectory(inPlaylistName, toDirectory, _targetStorage); foreach (var sourceFile in _sourceStorage.Directory.GetFiles(fromDirectory, SearchOption.AllDirectories)) { var targetFile = GetTargetFilePath(targetDirectory, sourceFile); StartProcessingFile?.Invoke(this, new ProgressEventArgs(targetFile, 0)); _targetStorage.File.Create(targetFile, _sourceStorage.File.Read(sourceFile)); } }
private int CopyContent(string targetDirectory, PlaylistItem[] playlistItems, IStorage storage) { int fileCopyCount = 0; foreach (var playlistItem in playlistItems) { var sourceFile = playlistItem.FileName; var targetFile = GetTargetFilePath(targetDirectory, sourceFile, ++fileCopyCount); StartProcessingFile?.Invoke(this, new ProgressEventArgs(targetFile, 0)); storage.File.Create(targetFile, _sourceStorage.File.Read(sourceFile)); playlistItem.FileName = Path.GetFileName(targetFile); } return(fileCopyCount); }