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: [Link mogu videti samo ulogovani korisnici]

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
  • 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
  • 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 1845 korisnika na forumu :: 82 registrovanih, 10 sakrivenih i 1753 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 20624 - dana 04 Apr 2026 04:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 100jan, 10x10.9, 357magnum, 9k38, ajo baba, alberto, Alexandar-1973, antonije64, aramis s, Aster Blistok, blankspace, Bojan198527, bojcistv, Boris BM, Boskovic, Cirkon, Crazzer, darkkran, Demi87, Denaya, dmitarche, Doc, draganl, Duce, dusanobr, Dusko_Dugousko, elenemste, france93, gajasvi, GT, iceburn, ikan, jarovitt, Jeremiah, kihot, KizJ, Kriglord, Kvaka22, lafa008, Lance Guest, Lieutenant, Litostroton, lord sir giga, Makarid, markolopin, Medojed, mercedesamg, Miki 24pbr, miki kv, mile.ilic75, mir juzni, moldway, Mzee, naki011, nebidrag, nekdo, nelezele, nenad81, Niki2024, Obrenovic, OKT, Orc, Papadubi, pera bager, ping15, repac, sap, Siti2, snik, Sonic, sspp, Stanislav1970, stokssone, synergia, Timočka Divizija, Toper, Tvrtko I, Velizar, Vrač, vrgudinac, vukovi, W123