【问题标题】:File Data inside of source code?源代码中的文件数据?
【发布时间】:2011-12-25 05:27:46
【问题描述】:

我正在研究一个用于管理 STFS 文件的类,我需要的一些数据有数百字节长。我想知道在源代码中使用该信息创建字节数组而不是从文件中读取它是否有任何问题。喜欢做:

byte[] data = new byte[0x100]{0x23,0x55,0xFF...

我认为无论你做什么都是在创建一个字节数组,但我从未见过这样的代码,所以我认为这可能是错误的,或者不是出于可读性目的。

【问题讨论】:

  • 什么是 STFS 文件?您的 data 对象是否类似于标题?您要创建还是修改它们?
  • 修改它们。它们是 Xbox 360 的文件系统。
  • 字节数组有什么用?验证?
  • 是的,类似的东西。

标签: c# data-management


【解决方案1】:

如果是关于您读取的文件的验证(例如,标题),那么我认为可以在字节数组中声明值。但请确保您的整个应用程序中只有一个实例。

例如:

static class STFSValidation
{
     public static readonly byte[] Header = new byte[] { ... };
}

【讨论】:

    【解决方案2】:

    如果数据相对较小并且永远不会改变(永远 = 比源代码少得多),那也没关系。

    在做出决定时考虑以下因素:

    • 是否需要对源中的数据进行注释(即magicHeader[3]=42;// the answer)。
    • 是否相对较小(我会说最多 256 个条目)
    • 它是否会改变(即现有文件格式 GIF 的签名 - 0x47,0x49, 0x46, 0x38, 0x37, 0x61 本质上是一成不变的,永远不会改变 - 请参阅 http://en.wikipedia.org/wiki/Magic_number_(programming)# 中有关幻数的更多信息)

    对于作为资源嵌入到应用程序中的大型常量 blob 可能是更好的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多