freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第六章 文件管理(三)-文庫(kù)吧

2025-08-02 15:36 本頁(yè)面


【正文】 try repeat BytesCopied := FileRead(Source, CopyBuffer^, ChunkSize)。 if BytesCopied 0 then FileWrite(Dest, CopyBuffer^, BytesCopied)。 until BytesCopied ChunkSize。 finally FileSetDate(Dest,TimeStamp)。 FileClose(Dest)。 end。 finally FileClose(Source)。 end。 finally FreeMem(CopyBuffer, ChunkSize)。 end。 end。 如果我們不使用 FileSetDate 過(guò)程, Windows 自動(dòng)把當(dāng)前時(shí)間作為時(shí)間戳寫(xiě)入文件。 文件移動(dòng)事實(shí)上是文件拷貝與文件刪除的結(jié)合。 fmxutils 單元中的MoveFile 過(guò)程實(shí)現(xiàn)了這一功能。 procedure MoveFile(const FileName, DestName: TFileName)。 var Destination: TFileName。 begin Destination := ExpandFileName(DestName)。 if not RenameFile(FileName, Destination) then begin if HasAttr(FileName, faReadOnly) then raise (Format(SFCantMove, [FileName]))。 CopyFile(FileName, Destination)。 DeleteFile(FileName)。 end。 end。 EFCanMove 是一個(gè)自定義異常類(lèi): type EFCanMove := Class(EStreamError)。 有關(guān)自定義異常類(lèi)請(qǐng)參閱第十二章。 文件刪除、文件更名直接調(diào)用 Delphi 文件管理過(guò)程 DeleteFile、RenameFile。它們都以文件名為參數(shù)。操作執(zhí)行前應(yīng)彈出一個(gè)對(duì)話框進(jìn)行確認(rèn),執(zhí)行完畢后應(yīng)調(diào)用 Update 方法更新 FileList 的顯示。 一致的界面 文件拷貝、文件移動(dòng)、 文件更名以及后邊的改變當(dāng)前目錄在形式上都表現(xiàn)為從一個(gè)源文件到一個(gè)目標(biāo)文件。因而可以采用統(tǒng)一的用戶(hù)界面,即 ChangeForm對(duì)話框 這四個(gè)菜單項(xiàng)共用一個(gè) Click 事件處理過(guò)程,通過(guò)對(duì) Sender 參數(shù)的檢測(cè),決定將要打開(kāi)對(duì)話框的標(biāo)題和顯示內(nèi)容。當(dāng)用戶(hù)按 OK 鍵關(guān)閉且目標(biāo)文件 (目錄 )非空時(shí),程序彈出一個(gè)消息對(duì)話框要求用戶(hù)進(jìn)一步確認(rèn),而后執(zhí)行相應(yīng)的動(dòng)作。 共用的事件處理過(guò)程 FileChange 的程序清單如下: procedure (Sender: TObject)。 var ChangeForm: TChangeForm。 IsFile: Boolean。 begin ChangeForm := (Self)。 IsFile := True。 with ChangeForm do begin if Sender = Move1 then Caption := 39。Move39。 else if Sender = Copy1 then Caption := 39。Copy39。 else if Sender = Rename1 then Caption := 39。Rename39。 else if Sender = ChangeDirectory1 then begin Caption:=39。Change Directory39。 IsFile:=False。 end else Exit。 if IsFile then begin := 。 := 。 := 39。39。 end else begin := []。 := 。 := 39。39。 end。 if (ShowModal idCancel) and ( 39。39。) then ConfirmChange(Caption, , )。 end。 end。 其中用到的自定義私有過(guò)程 ConfirmChange 用于執(zhí)行相應(yīng)的動(dòng)作: procedure (const ACaption, FromFile, ToFile: String)。 begin if MessageDlg(Format(39。%s %s to %s39。, [ACaption, FromFile, ToFile]), mtConfirmation, [mbYes, mbNo], 0) = idYes then begin if ACaption = 39。Move39。 then MoveFile(FromFile, ToFile) else if ACaption = 39。Copy39。 then CopyFile(FromFile, ToFile) else if ACaption = 39。Rename39。 then RenameFile(FromFile, ToFile) else if ACaption = 39。Change Directory39。 then changeDirectory(ToFile)。 。 end。 end。 顯示文件屬性 當(dāng)程序執(zhí)行 Properties 菜單項(xiàng)的 Click 事件處理過(guò)程時(shí),首先彈出一個(gè)TFileAttrForm 類(lèi)型的對(duì)話框,顯示文件的屬性 當(dāng)用戶(hù)修改并確認(rèn)后程序重新設(shè)置文件屬性。 Properties 菜單項(xiàng)的 Click 事件處理過(guò)程如下: procedure (Sender: TObject)。 var Attributes, NewAttributes: Word。 FileAttrForm: TFileAttrForm。 begin FileAttrForm := (self)。 ShowFileAttr(FileAttrForm,)。 end。 其中過(guò)程 ShowFileAttr 的實(shí)現(xiàn)如下: procedure (FileAttrForm:TFileAttrForm。 AFileName,Directory:String)。 var Attributes,NewAttributes: Word。 begin with FileAttrForm do begin := AFileName。 := Directory。 := DateTimeToStr(FileDateTime(AFileName))。 Attributes :
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1