fileName是文件的全路径名,如果该路径比较长,调用就失败
但是用
MStream := TmemoryStream.Create;
MStream.LoadFromFile(FileName);
运行正确。
但是用
MStream := TmemoryStream.Create;
MStream.LoadFromFile(FileName);
运行正确。
解决方案 »
- 如何捕获SQLServer的异常,并获取错误信息?
- 谁能发一个fastreport的入库单给我,谢谢.
- 怎么写这个
- 大家帮助我很急........在线
- 怎样知道IP地址是本地的,或是远程主机的,请教!!
- TADOQuery数据存储问题,解决后马上给分!
- 购买模拟企业经营软件!!
- 紧急寻找TRichView V1.7.10控件包源码或更高的版本的源码
- ****** HELP **************
- 两个拨号上网的用户,它们之间如何通讯?关注者给分,解决问题另外加分!!!!
- UDP包的通讯问题,封装约定好的通讯包,请高手帮忙
- 在线等待:在ServerSocket控件用于通信中,服务端分别和几个客户端通信!服务端如何知道当前正接收到的消息是哪个客户端传过来的?
跟踪了一下发现,流调用的函数是api的 CreateFile.CreateFile在msdn中规定长度不能大于 MAX_PATH = 260; 个字符。
如果超过这个字符就必须用 CreateFileW 函数,
所以很简单只用把delphi的源文件改一下就可以了,delphi就是这点好,随便改.单元 sysUtils 中function FileCreate(const FileName: string): Integer;
{$IFDEF MSWINDOWS}
begin
Result := Integer(CreateFileW(PChar(FileName), GENERIC_READ or GENERIC_WRITE,
0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0));
end;
{$ENDIF}
{$IFDEF LINUX}
begin
Result := FileCreate(FileName, FileAccessRights);
end;
{$ENDIF}
另外,发现一个怪事,我想建立一个路径长度超过255个字符的路径,可是在路径达到255个字符后,windows居然不让我新建文件夹了,不知道搂主的路径怎么建出来的。