![]() |
File löschen geht nicht
hi, versuch grad die ganze zeit ein file zu löschen, und ein anderes umzubennen...
bloss des geht irgendwie net... des eine file wird net gelöscht und des andere wird net umbenannt, die pfade stimmen aber alle.... hier mal der code:
Delphi-Quellcode:
sieht hier jemand im quelltext nen fehelr???
procedure TMain_Form.prNewFile(sFile : String);
var bl : Boolean; i, iLen : Integer; sPathC, sPathR, sRowC, sRowR : String; txtFileC, txtFileR : TextFile; strFile : TFileStream; begin //Create second File for latching sPathC := Copy(sFile, 1, 35) + '_C.txt'; Try strFile := TFileStream.Create(sPathC, fmCreate); Finally strFile.Free; End; {$I-} //Assign File for Input sPathR := sFile; AssignFile(txtFileR, sPathR); Reset(txtFileR); //Assign File for Output AssignFile(txtFileC, sPathC); Append(txtFileC); //Copy Record from Input File to Output File While Not EOF(txtFileR) Do Begin Readln(txtFileR, sRowR); sRowC := sRowR; //Clear Apostrophe i := fnPosI('"', sRowC, 1); While i <> 0 Do Begin iLen := Length(sRowC); i := fnPosI('"', sRowC, 1); If i <> 0 Then Begin sRowC := Copy(sRowC, 1, i - 1) + Copy(sRowC, i + 1 , iLen); End; End; Writeln(txtFileC, sRowC); End; //Close File for Input and Output CloseFile(txtFileR); CloseFile(txtFileC); {$I+} bl := DeleteFile(sPathR); bl := RenameFile(sPathC, sPathR); end; |
Re: File löschen geht nicht
Moin Andreas,
prüf doch mal ob DeleteFile bzw. RenameFile erfolgreich ausgeführt wurden. Für den Fall, dass nicht, kannst Du Dir mit GetLastError und SysErrorMessage ja mal die Fehlerursache ausgeben lassen. |
Re: File löschen geht nicht
Hi, wenn die Pfade stimmen täten, täten sie auch deleten und renamen.
Probier mal ein if fileexists(sPathR) then showmessage(sPathR) else showmessage('Fehler: Path/File nicht gefunden '+sPathR); if fileexists(sPathC) then showmessage(sPathc) else showmessage('Fehler: Path/File nicht gefunden '+sPathc); Dann siehste mal, was los ist. Geht auch in einem Konsolenprogramm wenn Du unter USES Dialogs einbindest. (ohne Gewähr!) GO2EITS |
Re: File löschen geht nicht
Zitat:
Man muss erst den Schreibschutz mit
Delphi-Quellcode:
entfernen, dann kann man die Datei löschen. :)
SetFileAttributes(Dateipfad, FILE_ATTRIBUTE_NORMAL);
|
Re: File löschen geht nicht
@ste_ett
Klar, aber so sehe ich mal, ob dies mit dem Path wirklich stimmt. Ich sehe aber nicht, warum normal erstellte Dateien hier schreibgeschützt sein sollten. Grüsse Go2EITS |
Re: File löschen geht nicht
hab mir die fehlermeldung ausgeben lassen (auf die idee hätte ich au selber kommen können :wall: )
aber der fehler verblüfft mich: datei wird von anderem prozess verwendet, datei kann nicht gelöscht werden... ich geb doch die datei (als die ich löschen will) mit close file frei... und bis zum delete wird se ja au von nix anderem verwendet... edit: ok glaub verblüffen tut er mich jetzt nicht wirklich mehr... glaub es liegt daran...
Delphi-Quellcode:
liegt wahrscheinlich daran das ich die prozedur aus dieser schleife aufruf und vermutlich kann er sie nicht löschen weil sie hier verwendet wird oder???
While iRC = 0 Do
Begin iRC := FindNext(recDat); If iRC = 0 Then Begin sFile := 'S:\Prod\' + recDat.Name; iSt := fnApostroph(sFile); If iSt > 0 Then Begin [b]prNewFile(sFile);[/b] End; End; End; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz