| |
VB.NET - Ein- und UmsteigerDatei nicht exklusiv öffnen | | | Autor: Manny75 | Datum: 16.09.08 09:07 |
| Hallo...
Gibt es eine Möglichkeit, unter VB2005 eine Datei so zu öffnen und einzulesen, dass ein anderer Prozess weiterhin Daten in die Datei schreiben kann?
Es gibt zwar den Befehl "FileOpen(ff, "c:\test.txt", OpenMode.Input, OpenAccess.Read, OpenShare.Shared)" aber der ist nur aus Gründen der Abwärtskompatibilität vorhanden.
Gruss,
Manny | |
Re: Datei nicht exklusiv öffnen | | | Autor: Micke | Datum: 16.09.08 13:30 |
| "aber der ist nur aus Gründen der Abwärtskompatibilität vorhanden."
das stimmt nicht, aber du kannst auch gern mit "new System.IO.FileStream(...)" arbeiten, was mehr parameter zuläßt wie z.b. async.
ich finde nicht, daß das framework beim dateizugriff wünsche offen läßt.
btw - wenn du nicht einlesen kannst, kann es ja auch am sperren durch den schreiber liegen.
Micke | |
Re: Datei nicht exklusiv öffnen | | | Autor: Manny75 | Datum: 16.09.08 15:13 |
| So stehts zumindest in der MSDN library...
Das Problem ist auch nicht, dass ich die Datei nicht lesen kann, sondern dass ich z.B. mit File.ReadallText die Datei exklusiv oeffne, dass die Maschine da keinen Zugriff mehr drauf hat um ihre Logs da rein zu schreiben. Und das ist irgendwie nicht Sinn der Sache... | |
Re: Datei nicht exklusiv öffnen | | | Autor: Manny75 | Datum: 17.09.08 08:55 |
| Habs gerade mal getestet, aber auch mit dem Filestream ist es nicht moeglich die Datei zu lesen und so zu oeffnen, dass andere Programm da noch was reinschreiben koennen.
Mit dem Befehl gehts interessanterweise:
FileOpen(1, Datei, OpenMode.Input, OpenAccess.Read, OpenShare.Shared) | |
Re: Datei nicht exklusiv öffnen | | | Autor: DaveS (Moderator) | Datum: 17.09.08 09:27 |
| PS. Hier sind zwei kleine Projekte, die eine Datei schreiben und gleichzeitig lesen
vbFileShareWrite:
Public Class Form1
Dim fs As IO.FileStream
Dim sw As IO.StreamWriter
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As _
System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
sw.Close()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
If IO.File.Exists("F:Test\share.txt") Then
IO.File.Delete("F:Test\share.txt")
End If
fs = New IO.FileStream("F:Test\share.txt", IO.FileMode.Create, _
IO.FileAccess.Write, IO.FileShare.Read)
sw = New IO.StreamWriter(fs)
End Sub
Private ln As Integer
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Timer1.Tick
ln += 1
sw.WriteLine("A new line " & ln.ToString())
sw.Flush()
End Sub
End Class vbFileShareRead:
Public Class Form1
Dim fs As IO.FileStream
Dim sr As IO.StreamReader
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As _
System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
sr.Close()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
fs = New IO.FileStream("F:Test\share.txt", IO.FileMode.Open, _
IO.FileAccess.Read, IO.FileShare.Write)
sr = New IO.StreamReader(fs)
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Timer1.Tick
rtb.AppendText(sr.ReadToEnd())
rtb.ScrollToCaret()
End Sub
End Class ________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats sevGraph (VB/VBA)
Grafische Auswertungen
Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Weitere Infos
|