[ IvanR. @ 14.11.2005. 10:38 ] @
| Da li neko moze da napise program u delphi-u koji ce prvo promeniti ime foldera(dodati nesto na postojece ime, npr. folder se zove "ivan", a da program promeni ime u "ivanbla"), zatim da klikom (na neki button) vrati ime u "ivan"???
Please ako neko ima vremena, posto sam pocetnik pa mi samo to treba!
Unapred hvala! |
[ Milos D @ 14.11.2005. 13:17 ] @
File/New/Application
stavis dva button-a na formu.
dvokliknes na prvi button
delfi napravi Button1Click proceduru, ti samo upises kod
RenameFile ('C:\dir1', 'C:\dir2');
F12 da bi ponovo video formu
dvokliknes na drugi button
upises kod
RenameFile ('C:\dir2', 'C:\dir1');
F9 (run)
Varijanta 2
dodas jos jedan Edit na formu
u kodu, umesto
'C:\dir1'
koristis:
Edit1.Text
da bi dobio sadrzaj edita kao ime direktorijuma (ili fajla) koji treba preimenovati.
[ IvanR. @ 16.11.2005. 23:29 ] @
unit Unit1;
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, FileCtrl;
type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
Button2: TButton;
DirectoryListBox1: TDirectoryListBox;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
RenameFile (label1.Caption,'C:\dir2');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
RenameFile ( 'C:\dir2',label1.Caption);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
DirectoryListBox1.DirLabel := Label1;
end;
end.
Znaci zamisao(sada samo primer)je da se folder dir1 uspomoc
directoryList-a(znaci prosto receno misem izaberes folder kolji ces
preimenovati u drugi, u ovom slucaju ) promeni u C:\dir2
Da li je ovo moguce, znaci izaberem folder koji hocu da preimenujem i kliknem na button?!
Veliko hvala na pomoci!
[ Milos D @ 17.11.2005. 14:34 ] @
directoryList1.Directory ti daje trenutno odabrani direktorijum. Znaci na primer
RenameFile (directoryList1.Directory,'C:\dir2');
bi promenio naziv odabranog direktorijuma u c:\dir2
samo, (mislim) da directory list box ne bi "primetio" tu promenu tj. ne bi automatski prikazao promenu. Zato moras da pozoves
directoryList1.Update
[Ovu poruku je menjao Milos D dana 17.11.2005. u 15:36 GMT+1]
[ IvanR. @ 17.11.2005. 21:37 ] @
Veliko hvala na pomoci, ali jednostavno dir1 nece da se preimenuje u dir2(naravno kada ga izaberem na directorylist-u)?
Da li mozes da proveris da li to radi, naravno ako imas vremena i ako ti nije veliki problem!?
Pozdrav
[ Srki_82 @ 17.11.2005. 22:46 ] @
Koliko znam ne smes da pises full putaju kao drugi parametar. Prvi sme da bude "C:\Nesto\MojFolder", ali drugi ne sme da bude "C:\Nesto\MojNoviFolder" nego samo "MojNoviFolder". Drugi parametar koristi putanju iz prvog parametra i ne mozes da promenis ime fajlu koji se nalazi u C:\ tako da se posle promene imena nalazi u C:\NovFolder. Znaci u drugom parametru dajes samo ime fajla ili foldera bez ikakve putanje.
[ Milos D @ 17.11.2005. 22:46 ] @
Hm, u stvari mislim da nisam nikad radio sa ovom kontrolom...
Prvo, pazi jer DirectoryListBox1.Directory ne vraca onaj direktorijum koji je selektovan (obojen) nego onaj koji je OTVOREN (dakle sa ikonicom otvorenog foldera, tj onaj koji je dvokliknut).
Drugo, izgleda da funkcija RenameFile iz nekog razloga nece da radi lepo ako pokusavas da promenis ime direktorijuma koji je na jednom disku/particiji, a program je aktivan na drugom disku/particiji. Zato pre preimenovanja postavi da je program aktivan na istoj particiji.
drive := DirectoryListBox1.Drive+':\';
ChDir (drive);
Trece, funkcija nece uspeti ako pokusavas da prebacis direktorijum sa jedne na drugu particiju (renamefile ('c:\dir1', 'd:\dir1')) - bar tako pise u helpu.
Cetvrto, ako je direktorijum "zakljucan" (npr ima neki pokrenuti exe iz tog direktorijuma ili je Expolorer iz nekog razloga "zakljucao" taj dir), opet funkcija nece uspeti.
[ Milos D @ 17.11.2005. 22:47 ] @
Ha, koji tajming...
Moze pun path kao destination, verovatno uz neka ogranicenja (npr verovatno ne moze c:\dir2 u c:\dir2\dir3)
[Ovu poruku je menjao Milos D dana 17.11.2005. u 23:50 GMT+1]
[ IvanR. @ 17.11.2005. 22:56 ] @
Hvala na brzim odgovorima!
Evo da ti malo priblizim moju zamisao, hteo sam da samo na ime foldera dodam nekakav nastavak tj. .{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}, kako bi se folder zakljucao i da se ne moze otvoriti iz Explorer-a!
To znaci prvi button1 bi samo na postojece ime dodao gore navedeni nastavak, a button2 bi taj nastavak brisao!
Kada sam izabrao folder, ja sam ustvario "otvorio"(dvoklikom), ali opet nije hteo da promeni ime, na istoj particiji i koji nije bio 'zakljucan"!
Sta mislis kako bi ovo bilo najefikasnije da se uradi(posto vidim da poznajes Delphi)?
[ Milos D @ 18.11.2005. 09:07 ] @
Evo probaj, kod mene radi.
[ IvanR. @ 18.11.2005. 10:48 ] @
E hvala mnogo!
Ja sam dodao jos i drivebox1 i moze da se menja i drive, znaci radi i na C: i na D:.....
Jos jednom hvala!
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|