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

 

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

Ιδέα για διαγραφή αρχείων με vb.net

Îåêßíçóå áðü ôï ìÝëïò Ioannis P. Τελευταία δημοσίευση από το μέλος Ioannis P στις 10-02-2006, 21:07. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  10-02-2006, 10:22 9497

    Ιδέα για διαγραφή αρχείων με vb.net

    Μια εφαρμογή δημιουργεί αρχεία των 120ΚΒ σε φακέλους. Σε κάθε φάκελο δημιουργούνται περίπου 3600 αρχεία. Σε τακτά χρονικά διαστήματα τα αρχεία αυτά πρέπει να διαγράφονται. Επειδή όμως όταν γίνεται η διαγραφή οι φάκελοι είναι περίπου 120 και τα αρχεία περίπου 450.000, η διαδικασία καθυστερεί αρκετά. Εκτός από το να κάνω quick format έχετε καμιά ιδέα για το πως θα σβήνωνται τα αρχεία γρήγορα;
  •  10-02-2006, 10:36 9498 σε απάντηση της 9497

    Απ: Ιδέα για διαγραφή αρχείων με vb.net

    Δεν γίνεται να ενεργοποιείται αυτή η διαδικασία της διαγραφής πιο συχνά; Από τι εξαρτάται; Μήπως αν έφτιαχνες ένα ανεξάρτητο service που να διαγράφει τα αρχεία;
    Vir prudens non contra ventum mingit
  •  10-02-2006, 10:41 9499 σε απάντηση της 9497

    Απ: Ιδέα για διαγραφή αρχείων με vb.net

    Η διαγραφή θα πρέπει να γίνεται εξ'ολοκλήρου ανά τακτικά χρονικά διαστήματα ή μπορεί να γίνεται τμηματικά;

    Αν μπορεί να γίνεται τμηματικά με βάση το εξής υποθετικό σενάριο:
    - Σημερα δημιουργούνται τα αρχεία
    - Αύριο θα πρέπει να ξεκινήσει η διαγραφή, η οποία όμως μπορεί να γίνεται σε chunks

    θα μπορούσες, ενδεχομένως, να φτιάξεις ένα windows service το οποίο να ξεκινάει threads τα οποία θα σβήνουν μικρές ομάδες αρχείων ανά καθορισμένα χρονικά διαστήματα, π.χ. ανά 5 λεπτά.

    Τώρα, βέβαια, αν αυτή είναι απλά μια λειτουργία που θέλεις να ενσωματώσεις σε μια ήδη υπάρχουσα εφαρμογή, φυσικά αυτό το σενάριο θα είναι λιγουλάκι δύσκολο. Δώσε μας αν θέλεις περισσότερες πληροφορίες για το context στο οποίο θα τρέχει η λειτουργία διαγραφής καθώς και για τους κανόνες της διαγραφής (κάθε πότε, με τι προαπαιτούμενα, αυτόματα/χειρωνακτικά κλπ).

    EDIT: Με...πρόλαβε ο Μανος, με τον οποιό μάλλον έχω τηλεπάθεια :)

     


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  10-02-2006, 18:24 9521 σε απάντηση της 9497

    Απ: Ιδέα για διαγραφή αρχείων με vb.net

    Ένα από τα flags του Win32 API CreateFile είναι και το FILE_FLAG_DELETE_ON_CLOSE, το οποίο έχει σαν αποτέλεσμα τη διαγραφή του αρχείου όταν κλείσουν όλα τα handles προς το αρχείο αυτό.

    Μήπως αυτό μπορεί να σου χρησιμέψει για να σβήνεις το αρχείο όταν η χρησιμότητά του τελειώνει;


    Νατάσα Μανουσοπούλου
  •  10-02-2006, 18:49 9523 σε απάντηση της 9497

    Απ: Ιδέα για διαγραφή αρχείων με vb.net

    Βρήκα αυτό: http://www.windowsdevcenter.com/pub/a/windows/2005/02/08/NTFS_Hacks.html

    3. Use More Folders
    If you frequently need to open, close, create, or delete certain types of files, keep the number of such files in each folder small. In other words, if you have a lot of these files, create additional folders to spread them out between folders. If this isn't practical for some reason, then the first two hacks above can help compensate for having too many files in one folder.

    4. Use More Partitions
    In Windows 2000, when you partition a large disk (50GB or more, say) into several smaller NTFS volumes (10GB each), you can speed disk performance by up to 10 percent. NTFS on Windows XP has been improved to perform better overall, but you can still squeeze a percent or two of better performance out of a large disk by partitioning it into several smaller volumes.

    Έχει και άλλα tips μέσα, ρίξε μια ματιά ίσως κάποια βοηθήσουν


    Χρήστος Γεωργακόπουλος
  •  10-02-2006, 21:07 9524 σε απάντηση της 9497

    Απ: Ιδέα για διαγραφή αρχείων με vb.net

    Τελικά καταλήγω στο:
    1) Να χρησιμοποιήσω αρκετά partitions.
    2) Να φτιάξω ένα ανεξάρτητο service για διαγραφή (το σενάριο της διαγραφής πρέπει να το σκεφτώ).
    3) Να δοκιμάσω μερικά από τα tips της σελίδας που που βρήκε ο cgeo.

    Σας ευχαριστώ πολύ. :-)
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems