在我的应用程序中,我正在使用 System.IO.FileStream (filePath) 读取 .PDF 文件。当文件夹具有本地用户权限时,此功能可以正常工作。当我从文件夹中删除本地用户权限时,这会出现访问被拒绝的错误。我正在使用这个代码...
System.IO.FileStream objFStream = new System.IO.FileStream(strPath, System.IO.FileMode.Open);
byte[] bytRead = new byte[(int)objFStream.Length];
objFStream.Read(bytRead, 0, (int)objFStream.Length);
objFStream.Close();
objFStream.Dispose();
Run Code Online (Sandbox Code Playgroud)
一旦我将 System.IO.FileStream 替换为 System.IO.File.OpenRead(strPath) ,它将起作用。替换代码是...
System.IO.FileStream objFStream = System.IO.File.OpenRead(strPath);
byte[] bytRead = new byte[(int)objFStream.Length];
objFStream.Read(bytRead, 0, (int)objFStream.Length);
objFStream.Close();
objFStream.Dispose();
Run Code Online (Sandbox Code Playgroud)
我想知道这有什么不同?如果有人知道请帮忙。
File.OpenRead方法FileAccess.Read在打开文件时使用。区别在于:
return new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
Run Code Online (Sandbox Code Playgroud)
该文档介绍了您正在使用的构造函数:
对于不带
FileAccess参数的构造函数,如果 mode 参数设置为 Append,则默认访问为 Write。否则,访问权限设置为ReadWrite。
所以我猜你没有权限写入该文件。这就是它抛出异常的原因。您可以通过尝试使用访问权限打开流来验证这一点ReadWrite:
new FileStream(strPath, FileMode.Open, FileAccess.ReadWrite);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7196 次 |
| 最近记录: |