windows-8 - 在 localFolder 中写入文件特定文件夹

标签 windows-8 visual-studio-2012 winjs

我正在尝试将图像文件写入本地文件夹存储。我想将其专门写入 localFolder 内的 images/heroes/ 文件夹。有没有办法用我现有的代码来做到这一点?

return WinJS.xhr({ url: fileToDownloadURL, responseType: 'blob' }).then(
   function (response) {
      var input = response.response.msDetachStream();
      var filename = 'ms-appx:///local/images/heroes/image_name.png';

      Windows.Storage.ApplicationData.current.localFolder.createFileAsync(filename,
      Windows.Storage.CreationCollisionOption.replaceExisting).then(
         function (file) {
            return file.openAsync(Windows.Storage.FileAccessMode.readWrite).then(
               function (output) {
                  return Windows.Storage.Streams.RandomAccessStream.copyAsync(input, output).then(
                     function () {
                        output.flushAsync().then(function () {
                           input.close();
                           output.close();
                     });
                });
          });
     }
   }
)};

我收到此错误消息:

0x8007007b - JavaScript 运行时错误:文件名、目录名或卷标语法不正确。

WinRT 信息:指定的名称 (ms-appx:///local/images/heroes/image_name.png) 包含一个或多个无效字符。

最佳答案

我明白了。对于任何想知道的人,您可以调用

getFolderAsync('SomeFolderName')

来自

Windows.Storage.ApplicationData.current.localFolder

实例。 getFolderAsync() 与任何 Promise 函数类似,如果文件夹不存在,则会返回错误。从那里你可以运行

createFolderAsync('SomeFolderName')

创建文件夹,然后继续您正在做的事情。就我而言,最好创建一个像 writeFileAsync() 这样的函数,然后根据文件夹是否存在来调用它。

请记住 getFolderAsync() 一次只能获取一个文件夹,因此类似于

getFolderAsync('along/list/of/folders')

行不通。我相信,您必须将 getFolderAsync() 调用链接在一起(如果我错了,请纠正我!)。

关于windows-8 - 在 localFolder 中写入文件特定文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14543741/

相关文章:

xaml - 使用 Visual State Manager 优于在代码中处理 Current_SizeChanged 事件的优势(WinRT、XAML)

c++ - E_INVALIDARG CreatePixelShader() 错误

c# - ASP.NET C# 更新查询不工作

c - 为什么以及如何在 C 语言中从 -52 开始未初始化的字符?

javascript - WinJS 内联绑定(bind)语法

windows-8 - WebView 的自定义用户代理

c# - ObservableCollection 的排序值(响应式扩展)

c# - MySQLProv/IBMDADB2 Provider 未在本地机器上注册

javascript - Windows Metro 应用程序和 Angular 路线 UI 和动态内容

javascript - 如何在 Windows Metro 应用程序中使用使用 .Net Framework 4.0 编译的 dll