Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Ταυτόχρονη εγγραφή σε text file

Îåêßíçóå áðü ôï ìÝëïò AngelsGR. Τελευταία δημοσίευση από το μέλος AngelsGR στις 04-09-2008, 09:45. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  03-09-2008, 16:43 44461

    Ταυτόχρονη εγγραφή σε text file

    Έχω ένα text file στο οποίο μπορεί να γράφουν μέσα σε αυτό ταυτόχρονα περισσότεροι από ένας. Θέλω την ώρα που γράφει κάποιος στο αρχείο, αν προσπαθήσει να γράψει και κάποιος άλλος να περιμένει έως ότου τελειώσει ο πρώτος. Θέλω πριν γράψει κάποιος στο αρχείο να κλειδώνεται και ο επόμενος που θα έρθει να βλέπει πως είναι κλειδωμένο και να περιμένει να έρθει η σειρά του. Για βοηθήστε, πως θα μπορουσα να το υλοποιήσω αυτο σε C#!!

  •  03-09-2008, 17:21 44462 σε απάντηση της 44461

    Απ: Ταυτόχρονη εγγραφή σε text file

    Αυτό που περιγράφεις είναι ήδη η default συμπεριφορά της κλάσης FileStream. Τί προσπαθείς να κάνεις? Πώς ανοίγεις το αρχείο? Μήπως το αρχείο έχει ήδη κλείσει όταν πάει κάποιος άλλος να γράψει? Αν για παράδειγμα χρησιμοποιείς τη using όταν ανοίγεις ένα FileStream, το αρχείο θα κλείσει μόλις βγεις έξω από το using. Αν χρησιμοποιείς την File.ReadAllText για να διαβάσεις ένα αρχείο, το αρχείο κλείνει πριν καν επιστραφούν τα αποτελέσματα.

     


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  04-09-2008, 09:45 44478 σε απάντηση της 44462

    Απ: Ταυτόχρονη εγγραφή σε text file

      static private void CounterInc(string CounterFilename, int fCounter) {
        fCounter++;
        FileStream fs = new FileStream(CounterFilename, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.Read);
        TextWriter tw = new StreamWriter(fs);
        try {
          tw.WriteLine(fCounter.ToString());
        }
        finally {
          tw.Close();
        }
      }

    αυτη ειναι η function που χρησιμοποιω. Φαντασου τωρα οτι τρεχω 2 exe απο τα οποια προσπαθουν και οι δυο να γραψουν στο αρχειο. Θελω με καποιο τροπο να ξερω πως αν το αρχειο ειναι lock απο καποιον αλλον, τοτε μεσα σε μια loop να περιμενω μεχρι να το κλεισει. Smile
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems