gpt4 book ai didi

c# - 使用 FileStream 读取 zip 文件,然后使用 CopyTo 破坏文件

转载 作者:行者123 更新时间:2023-11-30 22:24:09 25 4
gpt4 key购买 nike

您好,我正在从用户的计算机读取文件,然后使用特定的网络凭据将其写出到网络共享,这会损坏很小一部分文件。当我在十六进制编辑器中打开文件时,第一行的十六进制不同

Header:    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
Good File: 50 4b 03 04 14 00 08 00 00 00 37 57 51 41 6f 61
Bad File: 50 4b 03 04 14 00 08 00 00 00 b7 56 51 41 6f 61

0a 和 0b 列的差异贯穿整个文件,

如果我以错误的方式解决这个问题,一定要纠正我,或者如果它只是一些小的东西会更好。任何帮助深表感谢。我使用的代码如下

var fileStream = 
new FileStream(source, FileMode.Open, FileAccess.Read, FileShare.None);

var impersonationContext =
new WrapperImpersonationContext("myDomain", "myname", "myPass");

impersonationContext.Enter();

try
{
using (Stream file = File.OpenWrite(destination))
{
fileStream.CopyTo(file);
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
finally
{
impersonationContext.Leave();

if(fileStream != null)
{
fileStream.Close();
}
}

最佳答案

FileStream.CopyTo() 会将 n 个字节写入目标文件,但不会删除先前存在的目标文件的末尾。使用 FileMode.Create 打开输出流应该保证精确复制。

在最后调用 file.SetLength(file.Position); 也可能有效,但我不确定可靠性如何......

关于c# - 使用 FileStream 读取 zip 文件,然后使用 CopyTo 破坏文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12938557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com