我正在尝试编写一个使用磁带机的备份程序。
我已经下载了http://www.codeproject.com/KB/system/Tape_drive_operator.aspx,这似乎就是我正在做的事情,但在调用以下内容时收到错误消息:
public void Write(long startPos, byte[] stream)
{
// Get number of blocks that will be nned to perform write
uint numberOfBlocks = GetBlocksNumber(stream.Length);
// Updates tape's current position
SetTapePosition(startPos);
byte[] arrayToWrite = new byte[numberOfBlocks * BlockSize];
Array.Copy(stream, arrayToWrite, stream.Length);
// Write data to the device
m_stream.Write(arrayToWrite, 0, arrayToWrite.Length);
m_stream.Flush();
}
它加载磁带,但是当我写入数据时,m_stream.Flush()
命令会弹出以下错误消息:
IO操作无效。最有可能的是文件太长或者没有打开句柄来支持同步IO操作。
之前有其他人遇到过此问题吗?
干杯, 布莱基
答案 0 :(得分:1)
使用正确的设备块大小打开文件句柄。