1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135:
| unit FileOp;
interface uses Windows, Forms, ExtCtrls, Buttons, SysUtils, classes; var f:TForm; neu_name,alt_name:string; btn1, btn2: TBitBtn; procedure Datei_Kopieren(Quelle, Ziel: string); procedure Datei_Verschieben(Quelle, Ziel: string); procedure Datei_Loeschen(Quelle: string); procedure Datei_Umbenennen(Alter_Name: string);
implementation
uses shellapi;
var fos: TSHFileOpStruct;
function ohne_ext(FileName:string):string; var i:byte; begin i:=length(filename)-3; if filename[i]='.' then begin result:=copy(filename,1,i-1); end else result:=filename; end;
procedure BitBtn1Click(Sender: TObject); begin if ansilowercase(ExtractFileExt(neu_name))<> ansilowercase(ExtractFileExt(alt_name)) then begin neu_name:=ExtractFilePath(alt_name)+ ohne_ext(neu_name)+ ExtractFileExt(alt_name); end else neu_name:=ExtractFilePath(alt_name)+neu_name;
ZeroMemory(@fos, SizeOf(fos)); with fos do begin wFunc := FO_RENAME; pFrom := PChar(alt_name + #0); pTo := PChar(neu_name + #0); end; if (SHFileOperation(fos)<>0) then MessageBox(0, 'Fehler beim Umbenennen', nil, MB_IconError);
f.Free; end;
procedure BitBtn2Click(Sender: TObject); begin f.Free; end;
procedure Datei_Kopieren(quelle, ziel: string); begin ZeroMemory(@fos, SizeOf(fos)); with fos do begin wFunc := FO_COPY; pFrom := PChar(quelle + #0); pTo := PChar(ziel + #0); end; if (SHFileOperation(fos)<>0) then MessageBox(0, 'Fehler beim Kopieren', nil, MB_IconError); end;
procedure Datei_Verschieben(quelle, ziel: string); begin ZeroMemory(@fos, SizeOf(fos)); with fos do begin wFunc := FO_MOVE; pFrom := PChar(quelle + #0); pTo := PChar(ziel + #0); end; if (SHFileOperation(fos)<>0) then MessageBox(0, 'Fehler beim Verschieben', nil, MB_IconError); end;
procedure Datei_Loeschen(quelle: string); begin ZeroMemory(@fos, SizeOf(fos)); with fos do begin wFunc := FO_DELETE; pFrom := PChar(quelle + #0); end; if (SHFileOperation(fos)<>0) then MessageBox(0, 'Fehler beim Löschen', nil, MB_IconError); end;
procedure Datei_Umbenennen(Alter_Name: string); var labedit:TLabeledEdit; begin f:=TForm.Create(application); f.Caption:='Datei umbennenen'; f.Width:=354; f.Height:=143; f.Position:=PoMainFormCenter; f.Show; labedit:=TLabeledEdit.Create(f); labedit.Parent:=f; labedit.Show; labedit.EditLabel.Caption:='Neuer Name'; labedit.Height:=21; labedit.Left:=16; labedit.Top:=32; labedit.Width:=315; btn1:=TBitBtn.Create(f); btn1.Parent:=f; btn1.Show; btn1.Kind:=bkOk; btn1.Height:=25; btn1.Left:=16; btn1.Top:=80; btn1.Width:=110; btn1.OnClick:=BitBtn1Click(???) btn2:=TBitBtn.Create(f); btn2.Parent:=f; btn2.Show; btn2.Kind:=bkAbort; btn2.Height:=25; btn2.Left:=221; btn2.Top:=80; btn2.Width:=110; btn2.OnClick:=BitBtn2Click(???) alt_name:=Alter_Name; neu_name:=labedit.Text; end;
end. |