码迷,mamicode.com
首页 > Windows程序 > 详细

【温故Delphi】Win32API之GetTempFileName

时间:2014-07-16 20:08:25      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   strong   文件   

所遇问题

  新建的算量工程文件暂时保存到临时文件中,代码中调用了Win32 API——GetTempFileName

  但在一台笔记本上,函数返回了一个空字符串!

  为了查明原因想到了好用的GetLastError——返回错误信息。

  结果错误信息为“拒绝访问”,这让我很快想到了传入文件夹用户权限问题。

  经过检验,果然当前用户没有传入文件夹的写权限。

 1   function GetTempFileA(const APrefix: string; const APath: string): string;
 2   var
 3     sPath: string;
 4     nErrCode: UINT;
 5   begin
 6     SetLength(Result, MAX_PATH);
 7     sPath := Trim(APath);
 8     if sPath = ‘‘ then
 9       sPath := GetCurrentDir;
10 
11     SetLastError(ERROR_SUCCESS);
12     if GetTempFileName(PChar(sPath), PChar(APrefix), 0, PChar(Result)) = 0 then
13     begin
14       Result := ‘‘;
15       raise Exception.Create(SysErrorMessage(GetLastError));
16     end
17     else
18       SetLength(Result, StrLen(PChar(Result)));
19   end;

API说明

  bubuko.com,布布扣

反思

  茁壮的程序代码一定要有好的容错方法,一定要将错误信息发布出去。

  不怕出错,就怕不知道错在哪!

【温故Delphi】Win32API之GetTempFileName,布布扣,bubuko.com

【温故Delphi】Win32API之GetTempFileName

标签:style   blog   http   color   strong   文件   

原文地址:http://www.cnblogs.com/liustdelphi/p/3837010.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!