2016-03-31 8 views
0

vb.net'de, programımı sqlite3.exe'yi çalıştırıyorum. Sqlite3 bir metin dosyasına saklanır aşağıdaki komutları çalıştırır: output.csv oluşturulduktan sonraSQLite'den oluşturulan csv'nin kapalı olduğunu nereden biliyoruz?

.open prod.db 
.mode csv 
.output output.csv 
SELECT STATEMENT 
.output stdout 
.exit 

, o zaman ne sonuç olduğunu görmek için bir StreamReader çalıştırın ve aşağıdaki hatayı alıyorum:

Ancak, uzun süre kilitlenmediğini biliyorum çünkü csv'ye gidebilir ve oluşturulduktan sonra manuel olarak açabilirim.

İşlemin ne zaman tamamlandığını görmek için kod yazabilirim, ancak bu işlemi kontrol etmek için hangi işlemin çalıştığından emin değilim (SQLite3.exe'nin kapatılmasını kontrol ediyorum). Başka bir deyişle, csv'imin Streamreader'ın açılmasını nasıl sağlayacağını nasıl bilebilirim?

+0

Sonunda bir kod döndürmenin bir yolu var mı? Sonuç için beklemek zorunda mıyım? (SQLite ile bir hayranı değil veya hayranı değil) – Plutonix

+1

[this] 'u kontrol edin (http://stackoverflow.com/a/5380257/6141544) Manuel Alves'in yanıtı. – droque

+0

Mükemmel! Bunu kullanabildim ve süreçten ziyade csv'yi kontrol edebildim (ki, itiraf etmekten utanıyorum, yapmayı düşünmedim ...!). – Dustin

cevap

0

droque bağlantısını" Ben sorunu çözmek için kendi kod bazıları ile birleştirmek başardı

VB.Net 3.5 Check if file is in use

kullanma:

While FileInUse("output.csv") And j < 100 
     System.Threading.Thread.Sleep(100) 
      j += 1 
End While 
'Timeout after ~10 seconds 
If j = 100 Then 
     MessageBox.Show("CSV timeout. Exiting now.") 
     Exit Sub 
End If 

FileInUse burada tanımlanır:

Public Function FileInUse(ByVal sFile As String) As Boolean 
     Dim thisFileInUse As Boolean = False 
     If System.IO.File.Exists(sFile) Then 
      Try 
       Using f As New IO.FileStream(sFile, FileMode.Open, FileAccess.ReadWrite, FileShare.None) 
        ' thisFileInUse = False 
       End Using 
      Catch 
       thisFileInUse = True 
      End Try 
     End If 
     Return thisFileInUse 
    End Function 
İlgili konular