Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 8 在localFolder中写入特定于文件的文件夹_Windows 8_Visual Studio 2012_Winjs - Fatal编程技术网

Windows 8 在localFolder中写入特定于文件的文件夹

Windows 8 在localFolder中写入特定于文件的文件夹,windows-8,visual-studio-2012,winjs,Windows 8,Visual Studio 2012,Winjs,我正在尝试将图像文件写入localFolder存储。我想专门将其写入localFolder中的images/heros/文件夹。有没有办法用我现有的代码做到这一点 return WinJS.xhr({ url: fileToDownloadURL, responseType: 'blob' }).then( function (response) { var input = response.response.msDetachStream(); var filena

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

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信息:指定的名称(毫秒)-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()
调用链接在一起(如果我错了,请纠正我!)