本文整理汇总了C#中NPOI.POIFS.Common.POIFSBigBlockSize.GetBigBlockSize方法的典型用法代码示例。如果您正苦于以下问题:C# POIFSBigBlockSize.GetBigBlockSize方法的具体用法?C# POIFSBigBlockSize.GetBigBlockSize怎么用?C# POIFSBigBlockSize.GetBigBlockSize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NPOI.POIFS.Common.POIFSBigBlockSize
的用法示例。
在下文中一共展示了POIFSBigBlockSize.GetBigBlockSize方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BuildProperties
private static List<Property> BuildProperties(IEnumerator<ByteBuffer> dataSource, POIFSBigBlockSize bigBlockSize)
{
List<Property> properties = new List<Property>();
while(dataSource.MoveNext())
{
ByteBuffer bb = dataSource.Current;
// Turn it into an array
byte[] data;
if (bb.HasBuffer && bb.Offset == 0 &&
bb.Buffer.Length == bigBlockSize.GetBigBlockSize())
{
data = bb.Buffer;
}
else
{
data = new byte[bigBlockSize.GetBigBlockSize()];
int toRead = data.Length;
if (bb.Remaining() < bigBlockSize.GetBigBlockSize())
{
// Looks to be a truncated block
// This isn't allowed, but some third party created files
// sometimes do this, and we can normally read anyway
toRead = bb.Remaining();
}
bb.Read(data, 0, toRead);
}
PropertyFactory.ConvertToProperties(data, properties);
}
return properties;
}
示例2: BuildProperties
// private static List<Property> BuildProperties(IEnumerator<byte[]> dataSource, POIFSBigBlockSize bigBlockSize)
private static List<Property> BuildProperties(IEnumerator<ByteBuffer> dataSource, POIFSBigBlockSize bigBlockSize)
{
try
{
List<Property> properties = new List<Property>();
while(dataSource.MoveNext())
{
ByteBuffer bb = dataSource.Current;
//byte[] bb = (byte[])dataSource.Current;
// Turn it into an array
byte[] data;
if (bb.HasBuffer && bb.Offset == 0 &&
bb.Buffer.Length == bigBlockSize.GetBigBlockSize())
{
data = bb.Buffer;
}
else
{
data = new byte[bigBlockSize.GetBigBlockSize()];
//bb.get(data, 0, data.length);
bb.Read(data, 0, data.Length);
}
//}
//data = new byte[bigBlockSize.GetBigBlockSize()];
//System.Array.Copy(bb, data, bb.Length);
PropertyFactory.ConvertToProperties(data, properties);
}
return properties;
}
catch(System.IO.IOException ex)
{
throw ex;
}
}
示例3: RawDataBlockList
/// <summary>
/// Initializes a new instance of the <see cref="RawDataBlockList"/> class.
/// </summary>
/// <param name="stream">the InputStream from which the data will be read</param>
/// <param name="bigBlockSize">The big block size, either 512 bytes or 4096 bytes</param>
public RawDataBlockList(Stream stream, POIFSBigBlockSize bigBlockSize)
{
List<RawDataBlock> blocks = new List<RawDataBlock>();
while (true)
{
RawDataBlock block = new RawDataBlock(stream, bigBlockSize.GetBigBlockSize());
// If there was data, add the block to the list
if(block.HasData) {
blocks.Add(block);
}
// If the stream is now at the End Of File, we're done
if (block.EOF) {
break;
}
}
SetBlocks((ListManagedBlock[])blocks.ToArray());
}
示例4: CalculateMaximumSize
/**
* Calculates the maximum size of a file which is addressable given the
* number of FAT (BAT) sectors specified. (We don't care if those BAT
* blocks come from the 109 in the header, or from header + XBATS, it
* won't affect the calculation)
*
* The actual file size will be between [size of fatCount-1 blocks] and
* [size of fatCount blocks].
* For 512 byte block sizes, this means we may over-estimate by up to 65kb.
* For 4096 byte block sizes, this means we may over-estimate by up to 4mb
*/
public static int CalculateMaximumSize(POIFSBigBlockSize bigBlockSize,
int numBATs)
{
int size = 1; // Header isn't FAT addressed
// The header has up to 109 BATs, and extra ones are referenced
// from XBATs
// However, all BATs can contain 128/1024 blocks
size += (numBATs * bigBlockSize.GetBATEntriesPerBlock());
// So far we've been in sector counts, turn into bytes
return size * bigBlockSize.GetBigBlockSize();
}
示例5: GetBlocksPerBigBlock
private static int GetBlocksPerBigBlock(POIFSBigBlockSize bigBlockSize)
{
return bigBlockSize.GetBigBlockSize()/_block_size;
}