CreateViewStream一直抛出UnauthorizedAccessException错误

这个错误折腾了很久,最后发现是因为读取长度问题引起的,准确说就是溢出了,原先的代码是:

 Stream stream
                    = fileInfo.IsPartial
                    ? mmf.CreateViewStream(fileInfo.From, fileInfo.Length, MemoryMappedFileAccess.Read)
                    : mmf.CreateViewStream(0, fileLength, MemoryMappedFileAccess.Read);

改为:

 Stream stream
                    = fileInfo.IsPartial
                    ? mmf.CreateViewStream(fileInfo.From, fileInfo.Length-1, MemoryMappedFileAccess.Read)
                    : mmf.CreateViewStream(0, fileLength, MemoryMappedFileAccess.Read);

问题解决;

网上的其它解决方案(根据自己情况而定吧):

1、将文件属性改为只读,能解决

2、有的代码可能是:mmf.CreateViewStream(0, fileLength);,将代码改为mmf.CreateViewStream(0, fileLength, MemoryMappedFileAccess.Read);也能解决;

你可能感兴趣的:(CreateViewStream一直抛出UnauthorizedAccessException错误)