使用C#/ .NET写入磁带机

时间:2010-08-26 16:03:12

标签: c# .net

我正在尝试编写一个使用磁带机的备份程序。

我已经下载了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操作。

之前有其他人遇到过此问题吗?

干杯, 布莱基

1 个答案:

答案 0 :(得分:1)

使用正确的设备块大小打开文件句柄。