1

Konu: dizin silmek..

merhaba arkadaslar ,

  vfp icinde dizin silmek icin  forumda buldugum komut

ofs = CREATEOBJECT("Scripting.FileSystemObject")
odir = ofs.GetFolder("c:\mset\data")
odir.Delete

seklinde.  bu kodlar  windows un tum surumlerinde geçerli mi?  sorunsuz bir komut mudur ?

tesekkurler...

2 Son düzenleyen, ugurlu2001 (26.11.2010 16:38:51)

Re: dizin silmek..

Aydın; eğer PC yada Server da script dosyalarının çalışması kısıtlanmamışsa;  Windows XP ve sonrası tüm işletim sistemlerinde çalıştırabilirsin. Ancak bazı bilgisayarlarda güvenlik nedeni ile SCRIPTING türevi uıygulamalara kısıtlama getirilmiş olabiliyor.

Bu konuda daha önce benim makinemde bir sorun yaşamıştım. Nasıl olduğunu hala bilemiyorum. Bir şekilde SCRIPTING özelliğim devre dışı kaldı ve hala aktif hale getiremedim. Konuyu baya araştırmama rağmen. En güzel çözümün temiz bir sistem kurulumu olduğunu öğrendim. Zamansızlıktan ise hala bir kurulum yapamadım smile

Genel olarak %95 in üzerinde sorun yaşamayacağını düşünüyorum.

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

3 Son düzenleyen, ugurlu2001 (26.11.2010 17:06:42)

Re: dizin silmek..

Birde bendeki arşivde şöyle bir kod var :

Kodun yazarını not almamışım.

Visual Fox Pro
lcFolderTodelete = "c:\yourfolder"

IF DIRECTORY(m.lcFolderTodelete,1)
   IF MESSAGEBOX("Do you want to delete "+m.lcFolderTodelete+"?",4+32+256) = 6
      oFSO = CreateObject("Scripting.FileSystemObject")
      oFSO.DeleteFolder(m.lcFolderTodelete )
   ENDIF
ENDIF
Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

4

Re: dizin silmek..

saol verdigin bilgi icin..
bu durumda vfp komutlari ile recursive bir fonksiyon yazmak en garantilisi galiba..

5

Re: dizin silmek..

Aydın, bence fazla kasma; amaç folder silmek ise örnek kod zaten iş görüyor. Kullanıcının sistemi standart dışı ayarlara sahipse bırak kullanıcı düşünsün!

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

6

Re: dizin silmek..

ugurlu2001 yazdı:

... bırak kullanıcı düşünsün!


big_smile düşünen bir kullanıcı ... nerde var bu türden? big_smile

Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.

7

Re: dizin silmek..

Aydın Bey, ben şahsen scripting kullanmiyorum.

Şuraya bir göz atarsanız:
http://www.news2news.com/vfp/?example=5 … nction=494
Orda API function ile bu işlemin nasıl yapıldığını gösteriyor.

Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.

8

Re: dizin silmek..

Mehmet K yazdı:

Aydın Bey, ben şahsen scripting kullanmiyorum.

Şuraya bir göz atarsanız:
http://www.news2news.com/vfp/?example=5 … nction=494
Orda API function ile bu işlemin nasıl yapıldığını gösteriyor.

baktım çözüme. itiraf ediyorum ki yöntemi anlamadim. sistem bilgimi aşıyor. bilmediğim ne çok şey varmış ! bu çözümün mantığı nedir ? Bana birisi anlatabilir mi?

yardımlarınız için teşekkürler...

9

Re: dizin silmek..

Aydın Bey, bir başka öneri: dos command kullansanız?

Visual Fox Pro
rmdir c:\temp\pdf /s /q


Bu komut örneğin pdf klasörünü sesiz sedasız siliyor.

Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.

10

Re: dizin silmek..

sanirim en efendi cozum bu dos komutu smile  hic aklıma gelmemişti.  zaten bu kadar komutlada dizini sildiremezsem silinmese de olur smile

11

Re: dizin silmek..

Visual Fox Pro
m.xdir=GETDIR()

IF 6=MESSAGEBOX(m.xdir,292,"dizin boş ise silinecek")
  DECLARE Integer RemoveDirectory IN kernel32 As RemoveDirectoryA  ;
    String lpPathName
=    RemoveDirectoryA(m.xdir)
ENDIF


dizin boş değilse önce içindeki dosyalar silinmeli onun için komut ve dizin içi araştırma için komut fikirleri aşağıda:
DECLARE Integer DeleteFile IN kernel32 As DeleteFileA  ;
    String lpFileName
=ADIR(dizindekidosyalar,"*.*","AD")

VFP9 SP2

12

Re: dizin silmek..

Benim FileOperations diye bir classlib'im vardi. Onu kullanabilirsin:

http://rapidshare.com/files/433454542/f … ations.zip

Kullanim ornegi:

Visual Fox Pro
LOCAL loFileOp as fileIO OF 'd:\vfpCommonClasses\FileOperations.vcx'

loFileOp = NEWOBJECT('fileIO','d:\vfpCommonClasses\FileOperations.vcx')
 
* loFileOp = NEWOBJECT('fileIO','d:\vfpCommonClasses\FileOperations.vcx','', .t.)  && progress bar gibi UI ile
 
lcFolder = "C:\temp\Kurban Dizin"
 
loFileOp.xdelete(m.lcFolder,'',.t.) && lcFolder, tumu, alt dizinlerle birlikte

Uyarilar:
1) VFP ile gelen Filer.dll kullaniyor. Musterine onu da vermeli ve register etmelisin.
2) Recyle Bin'e atmiyor. Shift+Delete gibi calisiyor.