Sürüklenip Bırakılan Dizini Anlama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
FXERKAN
Üye
Mesajlar: 178
Kayıt: 26 Tem 2003 11:06
Konum: Sivas - Konya
İletişim:

Sürüklenip Bırakılan Dizini Anlama

Mesaj gönderen FXERKAN »

merhaba.

forma sürüklenip bırakılan dosyayı kod sayesinde algılayabiliyorum.

ancak ben forma sürüklenip bırakılan dizin içerisindeki tüm dosyalarında adreslerinin tabii dosya ismi dahil oalcak şekilde elde etmek istiyorum.

bunun için ne yapmam gerekir. biraz bişeyler denedimde olmadı. sürüklenip bırakılan dosyaları anlamak için ise şu kodu kullanıyorum.


procedure tfrmkayitlar.AcceptFiles( var msg : TMessage );
const
cnMaxFileNameLen = 255;
var
i,
nCount : integer;
acFileName : array [0..cnMaxFileNameLen] of char;
begin
nCount := DragQueryFile( msg.WParam,
$FFFFFFFF,
acFileName,
cnMaxFileNameLen );

for i := 0 to nCount-1 do
begin
DragQueryFile( msg.WParam, i,
acFileName, cnMaxFileNameLen );

// kayitekle(acfilename);
end;

DragFinish( msg.WParam );
end;
[ F X E R K A N © - E r k a n Ç İ F T Ç İ ]
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

sormak istedigin bir dizini formuna surkleyip bbıraktıgın zaman icindeki dosyalar uzerinde islem yapmaksa (altdizinler haric eger bunlarıda dahil etmek istersen saglam bir algoritma yazman gerek) dizinin ismini ogren;
bunu zaten surukle bırak deyince aldıgını varsayıyorum...
findfirst,findnext ve findclose fonksiyonlarını sıra ile kullanarak dizin icindeki dosyaları (*.* stringi ile) sırayla ogrenebilirsin. delphi helpte bu konuyla ilgili ornek bir kod da mevcut
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
FXERKAN
Üye
Mesajlar: 178
Kayıt: 26 Tem 2003 11:06
Konum: Sivas - Konya
İletişim:

Mesaj gönderen FXERKAN »

abi ben aslında sürüklenip bırakılan dizin olup olmaıdığını anlamak istiyorum. bunun için sürükle bırak kodundan ne yapmam gerekir acaba

diğer kısım yani dizin içerisindeki dosyaları bulmayı biliyorum zaten.
[ F X E R K A N © - E r k a n Ç İ F T Ç İ ]
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

valla c:\myfile.ext ile c:\mydir arasındaki farkı anlayacak bir fonk yazman gerek
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
karflake
Üye
Mesajlar: 222
Kayıt: 15 Haz 2003 03:57

Mesaj gönderen karflake »

Genelde klasör adlarında "." karakteri olmayacağını düşünürsek aşağıdaki bir kod belki işe yarayabilir.

Kod: Tümünü seç

function Klasormu(ad: string): boolean;
begin
  if Pos('.',ad)<>0 then Result:=False
  else Result:=True;
end;
Eğer gönderilen adda "." yoksa yani klasör ise fonksiyon true, eksi halde false değerini geri döndürür.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

ufak bir not : Ben klasör isimlerinde bol miktarda "." kullanırım. Mesela Winzip 8.1 gibi.

Kolay gelsin.
Kullanıcı avatarı
FXERKAN
Üye
Mesajlar: 178
Kayıt: 26 Tem 2003 11:06
Konum: Sivas - Konya
İletişim:

Mesaj gönderen FXERKAN »

arkadaşlar teşekkür ederim ben kendim anladım ya.

sürüklenen dosyanın uzantısını kontrol ediyorum. tabii dizinlerin uzantısı omadığı için de bu bir dizindir anlamına geliyor yani :-)
[ F X E R K A N © - E r k a n Ç İ F T Ç İ ]
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam.

- @Admin'in söylediklerini mutlaka dikkate almalısın. Önemli. Uzantısı olan klasör de mümkündür. Örneğini çok güzel bir şekilde kendileri vermiş zaten.

- Bir dizinin mevcut olup olmadığı kontrol eden fonksiyon olan DirectoryExists() fonksiyonundan faydalanabilirsin. Yani bulduğun her sürüklenmiş birimi bu fonksiyondan dönecek True veya False cevabı ile değerlendirebilirsin. FileExists() fonksiyonu ise dosya mevcut mu/değil mi sorgular.
Resim
Resim ....Resim
Cevapla