所以我试图以增量填充媒体设备并测量速度,直到我将数据写入75%到95%(我们不完全填写)> p>
当我去设置文件长度时(例如:当我的磁盘有3.72 GB可用时,我尝试制作3.1GB文件时出现以下异常
"参数不正确。"
栈跟踪
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.SeekCore(Int64 offset, SeekOrigin origin)
at System.IO.FileStream.SetLengthCore(Int64 value)
at System.IO.FileStream.SetLength(Int64 value)
at DiskSpeed.Write.WriteFileFromMemory(Byte[] buffer, String path, Int64 fileSize, Int32 currentIteration, Int32 totalIterations, CancellationToken ct)
这是代码
using (var fs = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None, 8, FileOptions.WriteThrough | FileFlagNoBuffering))
{
fs.SetLength(fileSize);
.......
}
我使用它以25%的增量将块写入可移动媒体,但是在75%之后,我只写了20%的块。从0-75%开始工作正常,它是抛出此错误的最后一块。是的,我已经仔细检查了文件大小,有空间!!!
有没有人有任何想法?我的智慧结束了,我似乎无法在网上找到任何东西。
答案 0 :(得分:1)
private const FileOptions FileFlagNoBuffering = (FileOptions)0x20000000;
这导致了这个问题。谢谢Dusan!