C# 将文件读入字节数组时System.ArgumentException
要使用C# 将文件读入字节数组时System.ArgumentException,c#,wpf,windows-phone-8,C#,Wpf,Windows Phone 8,要使用ByteArrayContent为HttpClient上载文件,我正在将StorageFile读取到字节数组中。代码在图像方面没有问题,但对于通过AudioVideoCaptureDevice生成的文件,它不起作用-即使通过我仔细检查的文件不是空的*它将以任何方式访问文件: 这是个例外 could not read file: System.ArgumentException: Value does not fall within the expected range. at Sys
ByteArrayContent
为HttpClient
上载文件,我正在将StorageFile
读取到字节
数组中。代码在图像方面没有问题,但对于通过AudioVideoCaptureDevice
生成的文件,它不起作用-即使通过我仔细检查的文件不是空的*它将以任何方式访问文件:
这是个例外
could not read file: System.ArgumentException: Value does not fall within the expected range.
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at TestApp.Models.Item.<Upload>d__1f.MoveNext()
在一些用户交互之后,我正在打电话
await dev.StopRecordingAsync();
Debug.WriteLine("stopped recording");
await stream.FlushAsync();
stream.Dispose();
有什么建议可以解释为什么有些文件有效,有些文件无效
谢谢
更新添加了用于创建文件和文件夹源的代码
UPDATE2为周围的try-catch读取文件大小添加了代码问题是由于声音文件的文件名错误。我保存了绝对路径,而不仅仅是上面代码中使用的文件名
谢谢每一个试图帮助你的人 文件是否确实已关闭?在本例中,stream.size的大小是多少?它似乎与wait方法的使用和编译器生成的代码有关。尝试以递增的方式向其输入更大的文件,以查看它是否在达到一定大小后被切断。你有行号吗?可能有助于让事情更清楚一些,因为到目前为止,消息似乎主要是编译器生成的函数。尝试捕获异常并打印其所有详细信息。如何获取
文件夹
?@oren使用块中的Debug.WriteLine永远不会被删除called@den,我添加了文件夹行
IStorageFolder applicationFolder = ApplicationData.Current.LocalFolder;
var dataFolder = await applicationFolder.CreateFolderAsync("data", CreationCollisionOption.OpenIfExists);
outputFile = await dataFolder.CreateFileAsync(audioFileName, CreationCollisionOption.ReplaceExisting);
stream = await outputFile.OpenAsync(FileAccessMode.ReadWrite);
await dev.StartRecordingToStreamAsync(stream);
await dev.StopRecordingAsync();
Debug.WriteLine("stopped recording");
await stream.FlushAsync();
stream.Dispose();