Dosya Açık mı kontrolü

1 2
02/12/2018, 23:38

bibib

Hocalarım arkadaşların başlığı bu şekilde yazdım tam tarifini bilmediğim için sizlerden bir konuda yardım ve fikrinizi almak istiyorum 
Verileri worde gönderdim sıkıntı yok ama şöyle bir sıkıntı oluyor 

Eğer önceden word olarak kaydedilmiş dosya açıksa hata veriyor ben kaydetme den önce bu isimde dosya açıkmı açıksa veya bu isimde dosya varsa windows un yaptığı gibi kaçtane varsa sayıp 
Örneğin
Hesap.doc varsa hesap(1).doc varsa hesap(2).doc ...
Nasıl yapabilirim bu şekilde örneğe nasıl ulaşabilirim 
Araştırdım ama bulamadım (araştırırken nasıl sorarak araştırabilirim)
03/12/2018, 10:30

berduş

aşağıdaki kodlar sadece dosya açıksa açık olduğunu söyler
txtdosya adlı metin kutusu dosya adı ve yolunu eklediğim alan
eğer dosyamız D:\Desktop\AccessDeneme\64bitçalıştırma.doc isemetin kutusuna D:\Desktop\AccessDeneme\64bitçalıştırma.doc yazıyorum
önce aşağıdaki fonksiyonu tanımlıyoruz

Function FileLocked(strFileName As String) As Boolean
On Error Resume Next

' If the file is already opened by another process,
' and the specified type of Access is not allowed,
' the Open operation fails and an error occurs.
Open strFileName For Binary Access Read Lock Read As #1
Close #1

' If an error occurs, the document is currently open.
If Err.Number <> 0 Then
   FileLocked = True
   Err.Clear
End If
End Function
 daha sonrada buton olayına aşağıdaki kodu yazıyoruz

Private Sub btnDosyaAcikmi_Click()
If Not FileLocked(Me.txtdosya) Then
MsgBox (Me.txtdosya & "dosyas kapal?")
Else
MsgBox (Me.txtdosya & "dosyası açık")
End If
End Sub
 yalnız önemli bir noktayı belirteyim; bu kodlar word Excel yada Access gibi  açtığı dosyaları kilitleyen programlarda çalışır
mesela bir word belgesi eğer wordpad ile açılmışsa kodlar o dosya kapalı der
dilerim işinize yarar
03/12/2018, 11:39

berduş

konunuzuz adı "Dosya açık mı kontrolü" olarak değiştirilmiştir
04/12/2018, 05:28

bibib

Teşekkürler hocam deneyip bilgilendireceğim bu kod sadece bu dosyanın açık olup olmadığını kontrol etmek için değilmi 
Şunu yaptırabiliyormuyuz
Windows bir şey kopyalarken aynı dosya ismi olanların sonuna (1) (2)... Gibi kaçtane ise ismi değiştirmeden sıralı rakamlar ekliyor böyle bir vb komut varmı nasıl bulabilirim
04/12/2018, 08:43

berduş

Bu kod sadece word dosyasi WORD programi tarafindan acilmissa calişir
Buyuk ihtimalle vardir ama ben bilmiyorum
05/12/2018, 13:31

ozanakkaya

Merhaba, ekli uygulamadaki kodlama hesap.docx isimli dosya için yazılmıştır. Siz oluşturacağınız yeni word belgesinin ismine göre kodlamayı değiştirmelisiniz. Formdaki butonu tıkladığınızda hesap.docx var ise filecopy kodu ile hesap(1).docx adında belge oluşturur, siz bu kısma yeni belge oluşturma kodunuzu ekleyeceksiniz. hesap(1).docx daha önceden oluşturulmuş ise hesap(2).docx oluşturulur.
1 2