mevcut bir klasörün adını değiştirme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
mevcut bir klasörün adını değiştirme
forumda aradım ama bulamadım,
içinde birsürü dosya, klasör vs. olan bir klasörün adını Delphi'den komut ile değiştirmek istiyorum.
nasıl yaparım?
saygılarımla
içinde birsürü dosya, klasör vs. olan bir klasörün adını Delphi'den komut ile değiştirmek istiyorum.
nasıl yaparım?
saygılarımla
- huseyinkucuk
- Üye
- Mesajlar: 142
- Kayıt: 29 Nis 2005 10:03
- Konum: İstanbul
- İletişim:
Öncelikle "içinde bir sürü dosya ve klasör olan bir klasörü kopyalayan" ve "içinde bir sürü dosya ve klasör olan klasörü silen" fonksiyonları Tansu Türkoğlu'nun kitabından aldığımı söylemek isterim... Bunlarla birlikte bu işi şöyle yaptım; önce yeni klasör açılıyor, bütün dosyalar yeni klasöre kopyalanıyor ve eski klasör içindekilerle birlikte siliniyor... Yani bildiğimiz klasör ismi değiştirmeyi beceremedim ama en azından küçük boyuttaki klasörler için (normal şekillerde yapmanın yolunu bulamadığımız takdirde) kullanılabilir...
Örneğin;
KlasorAdiDegistir('c:\deneme','c:\YeniDeneme');
gibi kullanılıyor... fonksiyon boolean döndürmesi gerekiyo ama onu yapmayı unutmuşum
Kolay gelsin...
Kod: Tümünü seç
uses shellapi;
{$R *.dfm}
function TForm1.CopyFileAndDirectory(von, zieldir: string): boolean;
var
fos:TSHFileOpStruct;
begin
ZeroMemory(@fos,SizeOf(fos));
With fos do
begin
wFunc:=FO_COPY;
fFlags:=FOF_MULTIDESTFILES;
pFrom:=pchar(von+#0);
pTo:=pchar(zieldir);
end;
Result:=(0=SHFileOperation(fos));
end;
/////////////////////////////////////////////////////////
function TForm1.DeleteFileAndDirectory(von: string): boolean;
var
fos:TSHFileOpStruct;
begin
ZeroMemory(@fos,SizeOf(fos));
With fos do
begin
wFunc:=FO_DELETE;
fFlags:=FOF_MULTIDESTFILES+FOF_NOCONFIRMATION;
pFrom:=pchar(von+#0);
end;
Result:=(0=SHFileOperation(fos));
end;
////////////////////////////////////////////////////////////////////
function TForm1.KlasorAdiDegistir(EskiKlasorYolu,YeniKlasorYolu: string): boolean;
begin
CopyFileAndDirectory(EskiKlasorYolu,YeniKlasorYolu);
DeleteFileAndDirectory(EskiKlasorYolu);
end;
KlasorAdiDegistir('c:\deneme','c:\YeniDeneme');
gibi kullanılıyor... fonksiyon boolean döndürmesi gerekiyo ama onu yapmayı unutmuşum

29.04.2005 tarihi itibariyle Delphi öğrenmeye başlayan yeni bir kullanıcı sayılabilirim.
hocam kodu denedim, yapmaya çalıştığım programda bir klasör adını deiştiriyorum. mesela merkez klasörünü CO diye değiştiriyorum, daha sonra CO klasörünü merkez diye değiştirmeye çalıştığım zaman "kaynak dosya veya diskten okunamıyor" diye bir hata veriyor.
imkanı olanlar kodu denerlerse sevinirim.
amacımız bir klasörün adını değiştirmek, sonra yine eski adını geri vermek.
imkanı olanlar kodu denerlerse sevinirim.
amacımız bir klasörün adını değiştirmek, sonra yine eski adını geri vermek.
- huseyinkucuk
- Üye
- Mesajlar: 142
- Kayıt: 29 Nis 2005 10:03
- Konum: İstanbul
- İletişim:
Gönderdiğim kod bende çalıştı. (c:\deneme diye klasör açtım, içine rasgele dosyalar attım ve klasörler oluşturdum, bu klasörlerin içine de rasgele dosyalar koydum sonra prosedüre 'c:\deneme','c:\SonucDeneme' parametrelerini gönderdim, sonucdeneme klasörü oluşmuş, deneme klasörü de yok, bir nevi ismi değişmiş yani)
hocam, gönderdiğim prosedürü ne şekilde kullandığını yazar mısın? Muhtemelen başka bir sebepten dolayı o uyarı mesajını veriyor. Kodu gönderir misin? Kolay gelsin...
hocam, gönderdiğim prosedürü ne şekilde kullandığını yazar mısın? Muhtemelen başka bir sebepten dolayı o uyarı mesajını veriyor. Kodu gönderir misin? Kolay gelsin...
29.04.2005 tarihi itibariyle Delphi öğrenmeye başlayan yeni bir kullanıcı sayılabilirim.
- huseyinkucuk
- Üye
- Mesajlar: 142
- Kayıt: 29 Nis 2005 10:03
- Konum: İstanbul
- İletişim:
Kod: Tümünü seç
procedure TForm1.Button3Click(Sender: TObject);
begin
KlasorAdiDegistir('c:\deneme1','c:\deneme2');
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
KlasorAdiDegistir('c:\deneme2','c:\deneme1');
end;
29.04.2005 tarihi itibariyle Delphi öğrenmeye başlayan yeni bir kullanıcı sayılabilirim.
- huseyinkucuk
- Üye
- Mesajlar: 142
- Kayıt: 29 Nis 2005 10:03
- Konum: İstanbul
- İletişim: