首页 > 解决方案 > 更改流中的文件名

问题描述

我有一个 API 方法,我在流中创建 zip 文件

MemoryStream outputMemStream = new MemoryStream();
ZipOutputStream zipStream = new ZipOutputStream(outputMemStream);

FileInfo fi = new FileInfo(version.File.ContentFilePath);

string entryName = ZipEntry.CleanName(fi.Name);
ZipEntry newEntry = new ZipEntry(entryName);
newEntry.DateTime = fi.LastWriteTime;
newEntry.Size = fi.Length;
zipStream.PutNextEntry(newEntry);

byte[] buffer = new byte[4096];
using (FileStream streamReader = File.OpenRead(fi.FullName))
{
   StreamUtils.Copy(streamReader, zipStream, buffer);
}
zipStream.CloseEntry();
zipStream.IsStreamOwner = false;
zipStream.Close();

outputMemStream.Position = 0;

long fileLength;
long startOffset;
long endOffset;
bool isPartial = false;
string errMessage = string.Empty;
Stream fs = FileUpDownHelper.GetPartialFileStream(outputMemStream, out fileLength, out startOffset, out endOffset, out isPartial, out errMessage);

return fs;

然后我需要发送这个文件,但我有一个问题,我无法更改文件名。并且文件名总是=方法名。如何在不创建文件的情况下解决此问题?

标签: c#asp.net.netasp.net-mvc

解决方案


推荐阅读