Download 后台下载程序可以';t将文件写入SD卡(WP8.1)

Download 后台下载程序可以';t将文件写入SD卡(WP8.1),download,background,windows-phone-8.1,Download,Background,Windows Phone 8.1,对不起,我的英语不好。。。 我的应用程序下载MP3文件并将其写入musicLibrary。下载通过BackgroundDownloader执行的文件。问题如下:下载在手机内部存储器中完成,但在SD卡上未完成。SD卡上的文件大小为0字节。 在清单中,应用程序有权访问internetClientServer、musicLibrary和removableStorage public async void HandleSelectDownload(string urlDownload, string f

对不起,我的英语不好。。。 我的应用程序下载MP3文件并将其写入musicLibrary。下载通过BackgroundDownloader执行的文件。问题如下:下载在手机内部存储器中完成,但在SD卡上未完成。SD卡上的文件大小为0字节。 在清单中,应用程序有权访问internetClientServer、musicLibrary和removableStorage

public async void HandleSelectDownload(string urlDownload, string fileNameSave)
    {
        try
        {
            // Thông số tải nhạc
            var requestUri = new Uri(urlDownload, UriKind.RelativeOrAbsolute);

            downloadTo = await KnownFolders.MusicLibrary.CreateFileAsync(fileNameSave, CreationCollisionOption.GenerateUniqueName);
            BackgroundDownloader downloader = new BackgroundDownloader();
            DownloadOperation operation = downloader.CreateDownload(requestUri, downloadTo);

            //progressbar
            Progress<DownloadOperation> downloadProgress = new Progress<DownloadOperation>(DownloadProgress);
            // start download
            await operation.StartAsync().AsTask(downloadProgress);
            }

        }
        catch (Exception ex) { Debug.WriteLine("HandleSelectDownload Error : \n" + ex); }
    }

    public void DownloadProgress(DownloadOperation operation)
    {
        try
        {
            if (operation.Progress.TotalBytesToReceive == 0) return;

            int progress = (int)(100 * ((double)operation.Progress.BytesReceived / (double)operation.Progress.TotalBytesToReceive));

            Debug.WriteLine(String.Format("{0} of {1} kb. downloaded - %{2} complete.", operation.Progress.BytesReceived / 1024, operation.Progress.TotalBytesToReceive / 1024, progress));

            if (progress >= 100)
            {
                Debug.WriteLine("Finish!: {0} ", operation.ResultFile.Name);
            }
        }
        catch (Exception ex) { Debug.WriteLine("DownloadProgress Error :" + ex); }
    }
public async void HandleSelectDownload(字符串urldoad,字符串fileNameSave)
{
尝试
{
//东斯ố Tải nhạC
var requestUri=新Uri(urlDownload,UriKind.RelativeOrAbsolute);
downloadTo=wait KnownFolders.MusicLibrary.CreateFileAsync(fileNameSave,CreationCollisionOption.GenerateUniqueName);
BackgroundDownloader downloader=新的BackgroundDownloader();
DownloadOperation=downloader.CreateDownload(requestUri,downloadTo);
//进度条
进度下载进度=新进度(下载进度);
//开始下载
等待操作.StartAsync().AsTask(下载进度);
}
}
catch(异常ex){Debug.WriteLine(“HandleSelectDownload错误:\n”+ex);}
}
公共作废下载进度(下载操作)
{
尝试
{
if(operation.Progress.TotalBytesToReceive==0)返回;
int progress=(int)(100*((double)operation.progress.BytesReceived/(double)operation.progress.TotalBytesToReceive));
Debug.WriteLine(String.Format({1}kb.downloaded-%%{2}complete.{0}),operation.Progress.BytesReceived/1024,operation.Progress.TotalBytesToReceive/1024,Progress));
如果(进度>=100)
{
WriteLine(“Finish!:{0}”,operation.ResultFile.Name);
}
}
catch(异常ex){Debug.WriteLine(“下载进度错误:+ex);}
}

这是Windows 8/8.1中的一个已知问题,并且一直存在。没有API更改。只需在Windows 10设备上运行应用程序