none
UWP应用如何获取往任意路径写入文件的权限 RRS feed

  • 问题

  • Hi,

    我目前正在开发一个下载文件的功能,需要往用户指定的文件夹写入下载的文件。

    但是我发现在manifest中仅有音乐库、图形库等几个文件夹的权限,我要怎么获取用户指定路径的权限呢?

    2016年3月20日 14:21

答案

全部回复

  • 是选了路径没有权限,而不是不会找路径。

    抛出System.UnauthorizedAccessException异常

    2016年3月21日 4:08
  • 也不是所有文件夹都没权限,像音乐库、图片图或者自己工作的文件夹当然是有权限,但是当用户选择的是D:\新建文件夹 这种路径,就没权限了。

    public async Task HandleDownload(string title, string url)
            {
                string filename;
                if (string.IsNullOrEmpty(DownloadFolder.Path))
                    filename = "C:\\Users\\BILL\\Music\\" + title + ".mp3";
                else
                    filename = DownloadFolder.Path + "\\"+ title + ".mp3";
                try
                {
                    await Task.Run(() => WebSongProxy.DownloadSong(url, filename));
                    StorageFile file = await StorageFile.GetFileFromPathAsync(filename);
                    await AddDownloadedSong(file);
                }
                catch (HttpRequestException ex)
                {
                    FileStream fs = new FileStream(".//log.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
                    using (StreamWriter sw = new StreamWriter(fs))
                    {
                        string content = ex.Message;
                        sw.Write(content + DateTime.Now.ToString());
                    }
                    throw;
                }
                //catch (Exception ex)
                //{
                //    FileStream fs = new FileStream(".//log.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
                //    using (StreamWriter sw = new StreamWriter(fs))
                //    {
                //        string content = ex.Message;
                //        sw.Write(content + DateTime.Now.ToString());
                //    }
                //}
            }

    其中DownloadFolder是用FolderPicker选择的文件夹。

    2016年3月22日 5:19
  • 但是FileStream 这个类并没有能用StorageFile或者StorageFolder 初始化的重载,能给我个用StorageFile或者StorageFolder读写的例子吗?
    2016年3月22日 11:03
  • ?????
    • 已标记为答案 Bill Gu 2016年3月23日 5:10
    • 已编辑 [-] 2018年1月11日 13:25
    2016年3月22日 11:27