Προς το περιεχόμενο

Delete file απο το δίσκο C++


jamie155

Προτεινόμενες αναρτήσεις

  • 3 μήνες μετά...
Δημοσ.

Κάνοντας χρήση της int remove(const char *path); ορισμένες φορές μου σβήνει τα αρχεία και άλλες όχι. Ή μάλλον για να το θέσω καλύτερα κάποια αρχεία καταφέρνει να τα σβήσει και κάποια άλλα δεν τα σβήνει ποτε.

Γνωρίζει κανείς μήπως γιατί παίζει να συμβαίνει αυτό?

 

ένα αρχειο π.χ. που δεν το σβήνει το έχω δημιουργήσει έτσι

file_op2.open("boxes.txt",std::ios::out);

Δημοσ.

>ofstream file_op2;
file_op2.open("boxes.txt",std::ios::out);
file_op2.close();
remove("boxes.txt");

 

Πρέπει να κλείνεις τα αρχεία πρωτού να διαγράψεις. Αυτό το πετυχαίνεις με τη μέθοδο close().

Δημοσ.

Jamie, επειδή το δοκίμασα κι εγώ και το αρχείο σβήνει πρέπει να αναφέρεις κι άλλες λεπτομέρειες του προβλήματός σου αν το πρόβλημα εξακολουθεί να υπάρχει.

Οι 4 γραμμές που πόσταρα λειτουργούν κανονικά και σβήνουν το αρχείο.

Δεν φταίει σε καμία περίπτωση η remove.

Δημοσ.

Αφού κλείνεις σωστά το αρχείο (close), θα πρέπει να διαγράφεται εκτός και αν για παράδειγμα έχεις θέσεις ειδικά attributes σε αυτό, πχ. read-only οπότε θα πρέπει φυσικά να τα αφαιρέσεις προτού κάνεις την διαγραφή.

 

Συνεπώς τσέκαρε τα attributes των αρχείων που δεν διαγράφονται, ενώ επίσης δες αν κάποια από αυτά χρησιμοποιούνται εκείνη την στιγμή από άλλες εφαρμογές..

 

Τέλος, επιβεβαίωσε ότι το path που ορίζεις είναι σωστός.

 

Υ.Γ.

Εκτός από την remove ορισμένοι Compiler υποστηρίζουν και την POSIX, unlink.

Δημοσ.

Ευχαριστώ πολύ.

Τελικά ήταν όντως κάπου αλλού ανοιχτό.και αυτό φάνηκε όταν πήγα να το σβήσω με system("del .... ")και ειδα στην γραμμη εντολων να λεει πως χρησιμοποιείται από κάποια άλλη διεργασια..

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...