Javascript 将播放列表保存到所需位置

Javascript 将播放列表保存到所需位置,javascript,windows-8,winjs,Javascript,Windows 8,Winjs,问题很简单: 我有一个播放列表 var playlist = new Windows.Media.Playlists.Playlist(); 我想将此播放列表保存到我选择的文件夹中(例如桌面或D:\New folder\Sub folder)。问题是播放列表。SaveAsAsync方法需要一个实现Windows.Storage.IStorageFolder的类,我不知道如何生成这样一个类,该类具有所需的根文件夹路径 编辑使用文件夹选取器现在似乎可以完成这项工作,但是有没有办法通过文件选取器获取

问题很简单:

我有一个播放列表

var playlist = new Windows.Media.Playlists.Playlist();
我想将此播放列表保存到我选择的文件夹中(例如桌面或D:\New folder\Sub folder)。问题是播放列表。SaveAsAsync方法需要一个实现Windows.Storage.IStorageFolder的类,我不知道如何生成这样一个类,该类具有所需的根文件夹路径

编辑使用文件夹选取器现在似乎可以完成这项工作,但是有没有办法通过文件选取器获取存储文件夹?

我有C#格式的解决方案,您可以轻松地在JS中转换它。您需要使用
FolderPicker
选择保存播放列表的位置。您可以将播放列表保存为3种格式

  • Windows Media(*.wpl)

  • Zune(*.zpl)

  • M3U(*.M3U)

请参阅下面给出的代码

var playlist = new Playlist();

//audio1 to audio4 are the object of StorageFile class
playlist.Files.Add(audio1);
playlist.Files.Add(audio2);
playlist.Files.Add(audio3);
playlist.Files.Add(audio4);

/* Initialize folder picker. Music lib is suggested start location and I've added
storage file type filters. */

FolderPicker folderPicker = new FolderPicker();
folderPicker.SuggestedStartLocation = PickerLocationId.MusicLibrary;
folderPicker.FileTypeFilter.Add(".m3u");
folderPicker.FileTypeFilter.Add(".wpl");
folderPicker.FileTypeFilter.Add(".zpl");
StorageFolder folder = await folderPicker.PickSingleFolderAsync();

/* Playlist.SaveAsAsync takes four argument. First is destination folder, second is
 playlist name, 3rd is file collision option and 4th is playlist format */

var file = await playlist.SaveAsAsync(folder, "myplaylist", NameCollisionOption.GenerateUniqueName, PlaylistFormat.WindowsMedia);


这是一个合法的解决办法,但我仍然希望用户能够正常保存播放列表(在文件选择器中选择格式和名称)。这不是解决办法
SaveAsAsync
仅提供可选择的文件夹,它应允许根据用户选择的名称和格式保存播放列表。您可以创建一个弹出式屏幕,允许用户选择目标文件夹,然后选择文本框中的文件名和播放列表类型的组合框。然后在按钮上单击“保存播放列表”,就像用户输入的一样。