Obrisi/napravi folder

1

Obrisi/napravi folder

offline
  • Pridružio: 13 Apr 2007
  • Poruke: 452
  • Gde živiš: Beograd

Posto u helpu nema moram da pitam

Kako da iz programa obrisem ili napravim folder
DeleteDir i DeleteFile nece Confused



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 08 Jan 2007
  • Poruke: 279
  • Gde živiš: Srbija

Ima više načina. Takođe u helpu ima objašnjenje, pogotovo ako je delphi 7 u pitanju.

Directories Create a Directory :  CreateDir('c:\path'); Remove a Directory : RemoveDir('c:\path') or RmDir('c:\path') Change a Directory : ChDir('c:\path') Current Directory : GetCurrentDir Check if a Directory exists : if DirectoryExists('c:\path') then ... Files Rename a File : RenameFile('file1.txt', 'file2.xyz') Delete a File : DeleteFile('c:\text.txt') Move a File : MoveFile('C:\file1.txt','D:\file1.txt'); Copy a File : CopyFile(Pchar(File1),PChar(File2),bFailIfExists) Change a File's Extension : ChangeFileExt('test.txt', 'xls') Check if a File exists : if FileExists('c:\filename.tst') then ...
Pa, onda:
uses   ShellApi; function CopyDir(const fromDir, toDir: string): Boolean; var   fos: TSHFileOpStruct; begin   ZeroMemory(@fos, SizeOf(fos));   with fos do   begin     wFunc  := FO_COPY;     fFlags := FOF_FILESONLY;     pFrom  := PChar(fromDir + #0);     pTo    := PChar(toDir)   end;   Result := (0 = ShFileOperation(fos)); end; function MoveDir(const fromDir, toDir: string): Boolean; var   fos: TSHFileOpStruct; begin   ZeroMemory(@fos, SizeOf(fos));   with fos do   begin     wFunc  := FO_MOVE;     fFlags := FOF_FILESONLY;     pFrom  := PChar(fromDir + #0);     pTo    := PChar(toDir)   end;   Result := (0 = ShFileOperation(fos)); end; function DelDir(dir: string): Boolean; var   fos: TSHFileOpStruct; begin   ZeroMemory(@fos, SizeOf(fos));   with fos do   begin     wFunc  := FO_DELETE;     fFlags := FOF_SILENT or FOF_NOCONFIRMATION;     pFrom  := PChar(dir + #0);   end;   Result := (0 = ShFileOperation(fos)); end; //kreiranje jos jedan nacin ... uses   Dialogs; begin   {$I-}   MkDir('c:\windows');   {$I+}   if IOResult <> 0 then     MessageDlg('Cannot Create Directory!',       mtWarning, [mbOK], 0)   else     MessageDlg('Directory Created.', mtInformation, [mbOK], 0); end;
Na kraju, probaj i ovo:
var   iniFile : TStrings ; begin   CreateDir('c:\DelphiDir') ;   iniFile := TStringList.Create;   iniFile.Add('[.ShellClassInfo]') ;   iniFile.Add('IconFile='+     GetEnvironmentVariable('windir')+'\system32\SHELL32.DLL') ;   iniFile.Add('IconIndex=47') ;   iniFile.add('InfoTip=This is a locked folder') ;   iniFile.SaveToFile('c:\DelphiDir\desktop.ini');   SysUtils.FileSetAttr('c:\DelphiDir',SysUtils.faReadOnly) ;   SysUtils.FileSetAttr('c:\DelphiDir\desktop.ini',     SysUtils.faSysFile or SysUtils.faHidden) ;   iniFile.Free ; end;
uses   ShellApi; procedure ShellFileOperation(fromFile: string; toFile: string; Flags: Integer); var   shellinfo: TSHFileOpStructA; begin   with shellinfo do   begin     wnd   := Application.Handle;     wFunc := Flags;     pFrom := PChar(fromFile);     pTo   := PChar(toFile);   end;   SHFileOperation(shellinfo); end; ...   ShellFileOperation('c:\afile.txt', 'd:\afile2.txt', FO_COPY);



offline
  • Pridružio: 13 Apr 2007
  • Poruke: 452
  • Gde živiš: Beograd

Hvala ,
ja sam u helpu trazio pod make,
i tamo sam nasao MakeDir,
ali za C

offline
  • Đuro Glumac
  • dipl. ing. informatike
  • Pridružio: 08 Feb 2004
  • Poruke: 3640
  • Gde živiš: ApAtIn

Poprilicno prost primer: http://www.festra.com/wwwboard/messages/7202.html

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

DeleteDir radi samo ukoliko je folder prazan.

offline
  • Pridružio: 13 Apr 2007
  • Poruke: 452
  • Gde živiš: Beograd

Imam jedan problem,
meni treba ovako nesto
RmDir(ExtractFilePath(application.exename) + '/Neki folder/'); MkDir(ExtractFilePath(application.exename) + '/Neki folder/');
Ustvari treba sve da obrise iz datog foldera,
i u kodovima koje sam dobio mogu da koristim samo tacne adrese(npr. c:\system), a nikada neznam gde ce korisniku program biti instaliran...
I u nekim od ovih kodova moze da se brise/pravi samo jedan folder...
Npr. moze C:\system a nemoze C:\ProgramFiles\Borland...

offline
  • Đuro Glumac
  • dipl. ing. informatike
  • Pridružio: 08 Feb 2004
  • Poruke: 3640
  • Gde živiš: ApAtIn

Sto se tice adrese gde ce korisnik instalirati softver, to mozes da resis preko registry kljuca.
Naima, prilikom instalacije koju radis sa nekim setum makerom tipa Install Shield i sl, upises u rgistry adresu foldera gde je instaliran. Kasnije tu adresu iz registry-a citas u delphiju i koristis je kao putanju do fajla.

Na primer, prilikom izrade instalacije nekog softvera napravis da upise u neki registry kljuc putanju instaliranog softvera. Kasnije taj registry zapis koristis umesto putanje.

Napomenuo bi jos jednu stvar... ukoliko korisnik nakon instalacije preimenuje ili premesti instalacioni direktorijum to sve pada u vodu.

Znaci, moras da realicujes, da se prilikom pokretanja programa proveri da li postoji softver u folderu do kog vodi putanja iz registry kljuca.

Verujem da sam bio dosta nejasan, ipak je 2:30AM, ali potrazi neki tutorial oko toga i bice ti jasnije, nije komplikovano.

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Probaj da napises ovako:
MkDir(   IncludeTrailingBackslash(     ExtractFilePath(Application.ExeName)) +   'Neki folder');

Ako to ne bude radilo, mozda MkDir trazi PChar kao parametar (nisam proveravao). Ako je to slucaj, putanju upisi u promenljivu tipa string pa castuj u PChar.

offline
  • Pridružio: 13 Apr 2007
  • Poruke: 452
  • Gde živiš: Beograd

Null razumeo sam te , ali kako da znas da korisnik nece u samom startu(instalaciji) promeniti putanju, ja nista neinstaliram u C:\ProgramFiles

Uspeo sam da uradim ovo, kompajler neprijavljuje gresku, kada probam sa debuggerom putanja je dobra, ali opet nece da radi...

var k : string; ......         k := ExtractFilePath(Application.ExeName)+'NekiFolder';         RemoveDir(Pchar(k));         CreateDir(Pchar(k));

Ima jos nesto, kada je debugger ukljucen i dodjem misem iza (k)
pise mi PChar(k)= Expression illegal in evaluator
Neznam sta to tacno znaci, ali cini mi se da k nemoze da se pretvori u PChar...

Bobby ako mozes na pp da mi das mail od Danny Thrope-a(ako mozes, posto si rekao da odgovara na mailove, a on ce verovatno znati) pa da ga pitam kako ovo da uradim, osim ako se neko neseti pre

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Gde ti je IncludeTrailingBackslash? Da li si uopste procitao sta sam ti napisao!?

Dopuna: 11 Maj 2007 15:32

Sad sam probao i kod koji sam ti dao definitivno radi... mogao bi da probas to sto ti neko predlozi na forumu.

Ko je trenutno na forumu
 

Ukupno su 631 korisnika na forumu :: 9 registrovanih, 3 sakrivenih i 619 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Dorcolac, esx66, havoc995, milenko crazy north, minmatar34957, pacika, uruk, voja64, zziko