Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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
C# 某些字节数组未复制到目标文件c_C#_Arrays_Windows Phone 8_Bytearray - Fatal编程技术网

C# 某些字节数组未复制到目标文件c

C# 某些字节数组未复制到目标文件c,c#,arrays,windows-phone-8,bytearray,C#,Arrays,Windows Phone 8,Bytearray,下面的代码从联机API检索字节数组,并创建和打开一个文件。它将字节数组复制到文件中 但是有些字节没有被复制,我通过使用if条件分析复制操作后的字节数组长度和目标文件大小来检查这个问题 filename = fn + img[i].name.Replace(@"/", "-"); var stream = await client.GetByteArrayAsync( new Uri(img[i].url.Replace("//", "http://"))); var file = awa

下面的代码从联机API检索字节数组,并创建和打开一个文件。它将字节数组复制到文件中

但是有些字节没有被复制,我通过使用if条件分析复制操作后的字节数组长度和目标文件大小来检查这个问题

filename = fn + img[i].name.Replace(@"/", "-");
var stream = await client.GetByteArrayAsync(
    new Uri(img[i].url.Replace("//", "http://")));
var file = await folder.CreateFileAsync(
    filename + ".jpg", 
    CreationCollisionOption.ReplaceExisting);
var targetstream = await file.OpenAsync(FileAccessMode.ReadWrite);
await targetstream.AsStreamForWrite().WriteAsync(stream, 0, stream.Length);
string a = Convert.ToString(targetstream.Size);
string b = Convert.ToString(stream.Length);
if (a == b)
{
    tiles t = new tiles();
    t.TileName = img[i].title;
    t.ImgUri = file.Path;
    this.tileList.Items.Add(t);
}

有没有将所有字节数组复制到文件的解决方案?

你记得关闭该文件吗?@Lasse V.Karlson我已经尝试过流关闭,dispose,但仍然得到一些未复制的文件。你应该始终关闭你使用的文件。当你说一些文件没有被复制时,你是说整个文件在目标目录中丢失了,还是说文件在那里,只是没有包含正确的字节数?@Lasse V.Karlson是的,只是没有包含正确的字节数,除了确保关闭问题中示例代码中没有执行的所有文件之外,我不知道还有什么要说的。