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

 

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

System.IO.FileInfo.Replace Method

Îåêßíçóå áðü ôï ìÝëïò yparhoap. Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 18-07-2008, 21:08. Υπάρχουν 1 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  18-07-2008, 17:21 43532

    System.IO.FileInfo.Replace Method

    Προσπαθώντας να εξετάσω πως δουλεύει η μέθοδος FileInfo.Replace αντιμετωπίζω την εξής συμεριφορά. FileIOException The process cannot access the file because it is being used by another process. Θα μπορούσε κάποιος να με βοηθήσει; (Ο κώδικας τρέχει σε WinXP Pro Sp2 με Administrator rights & VS2005). Ευχαριστώ.

    Private Sub ReplaceFile()

    Dim originalFile As String = "D:\test1.txt"

    Dim fileToReplace As String = "D:\test2.txt"

    Dim backUpOfFileToReplace As String = "D:\test2.txt.bak"

    If File.Exists(originalFile) AndAlso File.Exists(fileToReplace) Then

    Dim fInfo As New FileInfo(originalFile)

    If Not fInfo.IsReadOnly Then

    fInfo.Replace(originalFile, fileToReplace) 'The process cannot access the file because it is being used by another process.

    End If

    End If

    End Sub

    Δημοσίευση στην κατηγορία: , , ,
  •  18-07-2008, 21:08 43535 σε απάντηση της 43532

    Απ: System.IO.FileInfo.Replace Method

    Η πρώτη παράμετρος της replace είναι το destination file, οπότε η fInfo.Replace(originalFile,fileToReplace) προσπαθεί να αντικαταστήσει το originalFile με ... τον εαυτό του. To exception περιγράφει ακριβώς αυτό που συμβαίνει, προσπαθείς δηλαδή να πειράξεις ένα αρχείο που έχεις ήδη ανοίξει. Αν γράψεις fInfo.Replace(fileToReplace,backupOfFileToReplace) η αντικατάσταση θα γίνει χωρίς πρόβλημα.

    Εδώ που τα λέμε, αντί για αυτό το exception θα μπορούσε να σου πεί ότι έχεις δώσει το ίδιο όνομα για το destination ...

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems