OnFtpWork事件经常为idFTP触发。如果它经常写入磁盘,那将是浪费时间。有没有办法增加缓冲区,因此它不会经常写入磁盘每秒一次?
答案 0 :(得分:1)
您可以在执行转移之前设置TIdFTP.IOHandler.SendBufferSize
和TIdFTP.IOHandler.RecvBufferSize
属性。它们将被复制到用于传输连接的IOHandler
。
或者您可以使用TIdFTP.OnDataChannelCreate
事件来设置ADataChannel.IOHandler.SendBufferSize
和ADataChannel.IOHandler.RecvBufferSize
属性。
或者你可以在内部实现一个使用缓冲文件I / O的TFileStream
派生类,然后你不必弄乱TIdFTP
的缓冲区。