我设计的一个通信程序,用clientsocket和serversocket进行通信。客户端发出命令代号后服务端再返回相关信息。
我设置的要求文件夹信息时,服务端以'||'为分割符将文件、文件夹的名称、大小连接成一个string,然后判断string长度,超过8kb则舍弃8k后面的部分,再发给客户端。由客户端进行分解显示到listview中。
但是在请求windows这个大内容的文件夹,99%会出错,错误还很奇怪:EcovertError?而且delphi往往停在我设置的显示远程路径的代码上,或停在代码结束处。
我请求其他的文件夹时都没有错,一切按预定目标进行,就是windows文件夹报错。
下面是我的代码:begin
path.Add(temppath); //path为Tstringlist,记录当前远程文件夹路径
temp1:=copy(msg,4,3); //msg前6位为信息的类别记号
if temp1='215' then
showmessage('信息残缺'); //判断是否有舍弃(大于8k),在请求windows文件夹时没有弹出这个消息
if length(msg)=6 then
showfile('') //showfile(m:string)整理并显示文件信息,m为返回的文件信息
else
begin
temp1:=copy(msg,7,lh-6);
showfile(temp1); //若有信息,显示。
end;
ooo:=path.Count; //这句在请求windows文件夹时报错,什么EcovertError的
showmessage(inttostr(ooo));
path2:=strstofile(path); //将Tstringlist转化为string,有时候也在这里报错
window.addr.Caption:=path2;
end;
我设置的要求文件夹信息时,服务端以'||'为分割符将文件、文件夹的名称、大小连接成一个string,然后判断string长度,超过8kb则舍弃8k后面的部分,再发给客户端。由客户端进行分解显示到listview中。
但是在请求windows这个大内容的文件夹,99%会出错,错误还很奇怪:EcovertError?而且delphi往往停在我设置的显示远程路径的代码上,或停在代码结束处。
我请求其他的文件夹时都没有错,一切按预定目标进行,就是windows文件夹报错。
下面是我的代码:begin
path.Add(temppath); //path为Tstringlist,记录当前远程文件夹路径
temp1:=copy(msg,4,3); //msg前6位为信息的类别记号
if temp1='215' then
showmessage('信息残缺'); //判断是否有舍弃(大于8k),在请求windows文件夹时没有弹出这个消息
if length(msg)=6 then
showfile('') //showfile(m:string)整理并显示文件信息,m为返回的文件信息
else
begin
temp1:=copy(msg,7,lh-6);
showfile(temp1); //若有信息,显示。
end;
ooo:=path.Count; //这句在请求windows文件夹时报错,什么EcovertError的
showmessage(inttostr(ooo));
path2:=strstofile(path); //将Tstringlist转化为string,有时候也在这里报错
window.addr.Caption:=path2;
end;
解决方案 »
- 有关bpl的问题
- www.delphibbs.com怎么回事了,好几天都访问不了了。
- 请教一个小功能 大家帮帮忙看怎么实现 有结果马上结
- ADO问题
- 关于给mdichild窗体传值得问题!!!!!
- 请大家帮我看看。。。谢谢!!!
- 哪里有delphi6的注册码,不要“注册码 z9j8-pum4n-c6gzq认证码 rw2-7jw ”这一组
- dxdbtreelist求助
- treeview控件的问题!!!
- ★★★快来抢100分★★★:我控诉<<delphi5开发人员指南>>,它光盘里的例子程序怎么有那么多的bug,还花了我那么多的钱?
- 编写程序来修改端口
- Delphi-----------------高手
ooo:=path.Count;
showmessage(inttostr(ooo));这二句去掉了,问题依旧。
问题出现在path2:=strstofile(path);
还是什么EcovertError的。
而且,我请求其他的大文件夹,可以正常弹出“信息残缺”并显示,唯有windows目录一打开就出错。