【发布时间】:2019-01-11 06:52:10
【问题描述】:
在将文件从我(服务器 - 使用 Indy TIdTrivialFTPServer 组件)传输到设备时,我收到 EIdTFTPAllocationExceeded 异常。我找不到有关该异常可能意味着什么的任何信息,除了客户端上的磁盘空间问题(我知道不是这种情况,因为如果我通过不同的 TFTP 服务器传输文件,就没有问题)。
- 试图告诉我的异常是什么?
- 我该如何解决?
- 我是否缺少任何代码?
我的 TFTP 服务器代码(全部)是:
__fastcall TTrivialFTPServer::TTrivialFTPServer(TComponent* Owner) : TDataModule(Owner)
{
root = IncludeTrailingPathDelimiter(GetCurrentDir());
}
// ---------------------------------------------------------------------------
void __fastcall TTrivialFTPServer::tftpReadFile(TObject *Sender, UnicodeString &FileName, const TPeerInfo &PeerInfo, bool &GrantAccess, TStream *&AStream, bool &FreeStreamOnComplete)
{
FreeStreamOnComplete = true;
FileName = StringReplace(FileName, "/", "\\", TReplaceFlags() << rfReplaceAll);
FileName = ExtractFileName(FileName);
if (FileExists(root + "files\\" + FileName, false))
{
AStream = new TFileStream(root + "files\\" + FileName, fmOpenRead | fmShareDenyWrite);
GrantAccess = true;
}
else
{
GrantAccess = false;
}
}
【问题讨论】:
标签: c++builder indy tftp