我需要知道我的程序是否可以将文件写入磁盘(硬盘,软盘,闪存,CD)中。 我已经试过类似:测试磁盘是否具有写入权限
{$I-}
Rewrite(myFile);
{$I+}
Result:= (IOResult = 0);
的问题是,如果是只读磁盘时,Windows给我一个错误信息,告诉我,
“appName.exe - 写保护错误磁盘不能写,因为它是写保护,请在驱动器d体积 USB_BOOT去掉写保护:.取消TRYAGAIN继续”
如何测试与写访问提出任何错误/警告信息? 谢谢。
编辑:
确定。 “bug”与上面提到的那段代码没有任何关系。我只认为它出现在那里。我将代码移动到只读磁盘并从那里运行。该错误出现在一个名为“CreateShortcutEx”功能,在这条线:
MyPFile.Save(PWChar(WFileName),False);
MyPFile声明如下:
var
MyObject : IUnknown;
MySLink : IShellLink;
MyPFile : IPersistFile;
Directory : String;
WFileName : WideString;
MyReg : TRegIniFile;
begin
MyObject := CreateComObject(CLSID_ShellLink);
MySLink := MyObject as IShellLink;
MyPFile := MyObject as IPersistFile;
.....
end;
那么,为什么MyPFile试图写入应用程序的驱动器(一如果WFileName参数是“C:\ documents and settings \ bla bla”,那么它是只读的)?
对我的作品现在也。 – Ampere 2009-04-10 21:42:36