我需要知道我的程序是否可以將文件寫入磁盤(硬盤,軟盤,閃存,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