关于文件访问被拒绝的错误 'file access denied'。请教

Allblus 2006-04-08 08:30:11
procedure TMainForm.Lese_ID3Tag(Filename:string);
var
Buffer:array[1..128] of char;
F:File;
begin
AssignFile(F, Filename);
Reset(F,1);
Seek(F,FileSize(F)-128);
BlockRead(F, Buffer, SizeOf(Buffer));
CloseFile(F);
Titel:=copy(Buffer,4,30);
Artist:=copy(Buffer,34,30);
end;
我在一个循环里面调用这个函数的时候有时候会出现'file access denied'的错误,不知道怎么解决。
procedure BlockRead(var F: File; var Buf; Count: Integer [; var AmtTransferred: Integer]);
帮助上说:If AmtTransferred isn't specified, an I/O error occurs if the number of records read isn't equal to Count. If the $I+ compiler directive is in effect, errors raise an EInOutError exception.
这个问题怎么解决啊?
...全文
6081 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
darkliu 2006-04-09
  • 打赏
  • 举报
回复 1
{$I-}//关闭io检查

{$I+}//打开io检查
Allblus 2006-04-08
  • 打赏
  • 举报
回复 1
哈哈,搞定。
在begin后面加一个
{$I-}

When using {$I-} handle, use IOResult to check for I/O errors.

不过不明白这是啥意思。
Allblus 2006-04-08
  • 打赏
  • 举报
回复
我估计是这个错误:


if the number of records read isn't equal to Count
then an I/O error occurs
Allblus 2006-04-08
  • 打赏
  • 举报
回复
CloseFile(F);
这里不是有这个关闭的语句吗?

程式就是循环的时候出现问题的。没其它的打开它。
aiirii 2006-04-08
  • 打赏
  • 举报
回复
file access denied 就是 文件拒绝访问,你上一次打开,还没关闭,或者被其它程序打开了

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧