- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在编写允许 ASP.Net 网站检索文件的 WCF 服务(基于 this article )。我的问题是,当我返回流时,它是空白的。
为简单起见,我将代码隔离到一个简单的 winforms 应用程序中,以尝试找出返回流的问题所在,这是代码:
private Stream TestStream()
{
Stream fs = File.OpenRead(@"c:\testdocument.docx");
return fs;
}
// This method converts the filestream into a byte array so that when it is
// used in my ASP.Net project the file can be sent using response.Write
private void Test()
{
System.IO.MemoryStream data = new System.IO.MemoryStream();
System.IO.Stream str = TestStream();
str.CopyTo(data);
byte[] buf = new byte[data.Length];
data.Read(buf, 0, buf.Length);
}
这段代码的结果是 buf
有 12,587 字节长(文件的正确长度)但它只包含 0。
如果我尝试打开 Word 文档没有问题,我是否遗漏了一些明显的东西?
最佳答案
您忘记了Seek
:
str.CopyTo(data);
data.Seek(0, SeekOrigin.Begin); // <-- missing line
byte[] buf = new byte[data.Length];
data.Read(buf, 0, buf.Length);
关于c# - 从 File.OpenRead() 返回流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8741474/
使用 Windows Azure 存储客户端库,CloudBlob.OpenRead() 方法仅读取 4 mb 的数据。如何使用 OpenRead 方法读取完整流。 CloudBlob blob =
使用 Windows Azure 存储客户端库,CloudBlob.OpenRead() 方法仅读取 4 mb 的数据。如何使用 OpenRead 方法读取完整流。 CloudBlob blob =
如果您使用 FileStream 构造函数之一,您可以以字节为单位指定缓冲区大小,但如果您使用 File.OpenRead,则不能。第二种情况中使用的缓冲区大小的默认值是多少? 最佳答案 用Teler
我正在使用此方法写入 MemoryStream 对象,该对象随后以二进制形式存储在 SQL 中。它用于从 Windows 上的文件系统中读取 .HTML 文件。 我如何知道读取的数据是哪种编码类型?谢
所以我有这个程序可以使用短链接获取页面(我使用了 Google url shortener)。为了构建我的示例,我使用了来自 Using WebClient in C# is there a way
如何正确处理 File.OpenRead()。我目前正在使用以下代码? using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
我想测试一个使用 File.OpenRead() 方法获取文件内容的类。读取文件的内容后,它会处理它们。我已经创建了一个接口(interface)和一个包装静态 OpenRead() 方法的类。但是我
我找到了 this answer对于 Python。它适用于 C# WebClient.OpenRead 吗? 在下面的例子中: OpenRead 是否一次下载所有 csv 文件(因此 ReadLin
为什么使用下面的代码 string filePath = @"C:\test\upload.pdf" FileStream fs = File.OpenRead(filePath); 引发以下异常?
我正在编写允许 ASP.Net 网站检索文件的 WCF 服务(基于 this article )。我的问题是,当我返回流时,它是空白的。 为简单起见,我将代码隔离到一个简单的 winforms 应用程
谁能告诉我 OpenRead 方法读取文件的权限和文件共享是什么。 我正在尝试这段代码, FileStream stream = File.OpenRead(FileName); 但是被建议使用这个代
我正在使用 WebClient.OpenReadAsync 方法从 Windows Phone 7 上的 Web 服务器下载数据。在某个时刻,引发了 OpenReadCompleted 事件,并且我获
我没有找到有关 https://learn.microsoft.com/en-us/dotnet/api/system.io.file.openread?view=netcore-3.1 的信息 我正
我没有找到有关 https://learn.microsoft.com/en-us/dotnet/api/system.io.file.openread?view=netcore-3.1 的信息 我正
我正在制作一个更新一些文件的 Powershell(3.0 版,.Net 框架 4.5)脚本。但是,其中一些需要先进行检查。 我打开一个 JAR 文件并使用以下代码获取条目的内容: [Reflecti
我使用 PowerShell 命令 (get-item c:\temp\a.log).OpenRead() 来测试文件发生了什么。 打开文件进行读取后,如果我发出 (get-item c:\temp\
我想复制一个正在被另一个进程使用的加密文件。 这个有效: System.IO.File.Copy("path1", "path2",true); 但是下面的代码不起作用。提示“文件访问被拒绝”错误:
我需要读取一个在程序的其他部分打开用于写入的文件 const string fileName = "file.bin"; FileStream create = File.Open(fileName,
我有一个 ASP 文件上传,PostedFile.InputStream,它为我们提供了 System.IO.Stream。这个文件流是不是和获取的类似 System.IO.File.OpenRead
在我的应用程序中,我正在使用 System.IO.FileStream(文件路径)读取 .PDF 文件。当文件夹具有本地用户权限时,这工作正常。当我从文件夹中删除本地用户权限时,这会导致访问被拒绝错误
我是一名优秀的程序员,十分优秀!