【问题标题】:File.WriteAllBytes creating 0 byte filesFile.WriteAllBytes 创建 0 字节文件
【发布时间】:2015-02-01 06:14:05
【问题描述】:

这种行组合是否可以创建一个 0 字节的文件?我希望写入始终完成。谢谢!

File.WriteAllBytes(file_name, encrypted_data);
encrypted_data = null;

编辑:假设我的字节数组当然不是空的,我正在添加检查。

【问题讨论】:

  • 如果encrypted_data的长度为正,则输出文件file_name的长度不能为零,
  • 如果代码正在生成一个零长度文件,那么可能的原因是该文件已经打开(在您的代码或其他进程中),并且您的代码正在捕获并隐藏@时抛出的异常987654324@ 失败。
  • 标准错误是查看了错误的文件,这是您之前在调试代码时创建的文件。这样做的标准原因是 file_name 是一个相对路径,因此它是在一个相当随机的位置创建的,该位置取决于编程中最讨厌的全局变量 Environment.CurrentDirectory
  • 那个空赋值好像和问题无关。

标签: c# .net io


【解决方案1】:

尝试使用 writeByte 而不是 File.WriteAllBytes

FileStream stream = File.Open(FilePath,FileMode.OpenOrCreate);            
                   if (null != stream)
                   {
                       byte[] encrypted_data=something; // your bytes
                       foreach (byte b in encrypted_data)
                       {
                           stream.WriteByte(b);
                       }
                   }
stream.Close();

读取文件时仍然可以使用 System.IO.File.ReadAllBytes

【讨论】:

  • 为什么会有不同?
猜你喜欢
  • 2011-03-10
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 2013-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多