C# fileStream保存文件会丢失属性

发布于 2022-09-05 22:36:52 字数 1484 浏览 42 评论 0

1.我使用DSOFile对文件A设置了自定义属性fileId。

2.我使用fileStream读取A文件的所有内容,将读取的内容保存为B文件。

3.检测B文件,发现fileId属性不存在。

由此发现fileStream的读取->写入操作会丢失文档的属性,那么,请问是否有不丢失文档属性的写入方案?

下面是我用到的读写代码:

// FileStream读取文件
public static string FileStreamReadFile(string filePath)
{
    byte[] data = new byte[100];
    char[] charData = new char[100];
        FileStream file = new FileStream(filePath, FileMode.Open);
        //文件指针指向0位置
        file.Seek(0, SeekOrigin.Begin);
        //读入两百个字节
        file.Read(data, 0, (int) file.Length);
        //提取字节数组
        Decoder dec = Encoding.UTF8.GetDecoder();
        dec.GetChars(data, 0, data.Length, charData, 0);
          
    return Convert.ToString(charData);
}
// 用FileStream写文件
public static void FileStreamWriteFile(string filePath, string str)
{
    byte[] byData;
    char[] charData;
    try
    {
        FileStream nFile = new FileStream(filePath + "love.txt", FileMode.Create);
        //获得字符数组
        charData = str.ToCharArray();
        //初始化字节数组
        byData = new byte[charData.Length];
        //将字符数组转换为正确的字节格式
        Encoder enc = Encoding.UTF8.GetEncoder();
        enc.GetBytes(charData, 0, charData.Length, byData, 0, true);
        nFile.Seek(0, SeekOrigin.Begin);
        nFile.Write(byData, 0, byData.Length);
    }
    catch (Exception ex)
    {
        throw ex;
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文