如何取得光碟內目錄結構及光碟的Label |
答題得分者是:Miles
|
shawn
一般會員 發表:5 回覆:6 積分:2 註冊:2003-11-20 發送簡訊給我 |
|
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
Hi shawn兄您好, 我試的這個也許不是最簡易的方法, 參考一下
Uses ShellApi; type TDriveShellInfo = record Icon : hIcon; Image : integer; DisplayName, TypeName : string end; procedure GetDriveShellInfo (Drive : Char; var Info : TDriveShellInfo); var SHFileInfo : TSHFileInfo; begin ShGetFileInfo (PChar (Drive ':\'), 0, SHFileInfo, SizeOf (TSHFileInfo), SHGFI_TYPENAME or SHGFI_DISPLAYNAME or SHGFI_SYSICONINDEX or SHGFI_ICON); with Info do begin Icon := SHFileInfo.hIcon; Image := SHFileInfo.iIcon; DisplayName := SHFileInfo.szDisplayName; TypeName := SHFileInfo.szTypeName end end; procedure ShowFile(InDir : String); var sr: TSearchRec; FileAttrs: Integer; begin if FindFirst(InDir '\*.*', faAnyFile, sr) = 0 then begin Form1.Memo1.Lines.Add( InDir ' [DIR]'); while FindNext(sr) = 0 do begin if (sr.Name = '.') or (sr.Name = '..') then continue; if ((sr.Attr and faDirectory) = faDirectory) then ShowFile(InDir '\' sr.Name) else Form1.Memo1.Lines.Add( ' ' sr.Name ' [File]'); Application.ProcessMessages; end; end; FindClose(sr); end; Function GetCDList : String; Var I : Integer; Drives: Integer; Tmp : String; begin Drives := GetLogicalDrives; Result := ''; // units A=0 to el Z=25 For I := 0 To 25 Do If (((1 Shl I) And Drives)<>0) Then Begin Tmp := Char(65 I) ':\'; If (GetDriveType(PChar(Tmp))=DRIVE_CDROM) Then Result := Result Char(65 I); End; End; //**********取得光碟機及標籤********** procedure TForm1.Button1Click(Sender: TObject); var Str : String; Info : TDriveShellInfo; begin Memo1.Lines.Add(GetCDList); Str := GetCDList; GetDriveShellInfo(Str[1], Info); ShowMessage(Info.DisplayName); end; //**********取得光碟裡面的檔案目錄********** procedure TForm1.Button2Click(Sender: TObject); begin ShowFile(GetCDList ':'); end;這兩篇讓你參考 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=21837 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=51174 Best Regard 我不是高手, 高手是正在銀幕前微笑的人. 發表人 - miles 於 2004/08/13 15:12:07
------
我不是高手, 高手是正在銀幕前微笑的人. |
shawn
一般會員 發表:5 回覆:6 積分:2 註冊:2003-11-20 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |