J'ai un script MATLAB qui doit écrire des fichiers temporaires sur le disque, puis supprimer ces fichiers lorsque j'en ai fini avec eux. Il est important que je supprime les fichiers moi-même (plutôt que de les laisser s'accumuler dans le répertoire temp) car le code en question est dans une boucle qui s'exécute plusieurs fois. Si les fichiers ne sont pas supprimés rapidement, le script va rapidement engloutir de grandes quantités d'espace disque. Je pensais que l'extrait de code ci-dessous fonctionnerait, et il le fait quand je l'exécute tout seul. Pour une raison quelconque, cependant, l'extrait échoue lorsque je l'inclue dans mon script plus grand. Les fichiers temporaires ne sont pas supprimés et encombrent le répertoire temporaire.Comment supprimer des fichiers temporaires dans MATLAB
% create temporary file
myTmpFile = [tempname '.wav'];
fs = 32000;
wavwrite(zeros(fs,1),fs,myTmpFile);
% use the file here
% delete the file when we're done
prevState = recycle('off'); % turn recycle off to permanently delete files
delete(myTmpFile)
recycle(prevState); % restore the state of recycle
Est-ce que quelqu'un a une idée de ce que je fais mal? Je cours MATLAB 7.10.0 sur OS X 10.7.3.
- EDIT *
I figured it out. Voir ma réponse ci-dessous.
Vous pouvez être intéressé par la définition d'un objet 'onCleanup' afin que le fichier soit supprimé même si la fonction se ferme en raison d'une erreur. – Jonas