Question

Amis,

J'essaie de traiter une énorme quantité de fichiers audio à l'aide d'un Rubis (1.9.3) Script en scannant leur ID3-Tags en utilisant le assez rapide taglib-ruby (0.2.1 via Gem-Server) Library.

Voici une partie de mon code, tandis que audio Contient le chemin complet du fichier dans une corbe-rayon:

begin 
  file_ref = TagLib::FileRef.new(audio) 
  unless file_ref.tag.nil? 
     unless file_ref.tag.artist.nil? or file_ref.tag.title.nil?
       …
     end
  end
ensure
 file_ref = nil
end

Ensuite, j'ai des ennuis presque à la fin du traitement. Tague se plaint des autorisations de lecture manquantes et FileUtils.mv n'est plus capable de déplacer le fichier par la suite. C'est probablement le cas, car mon script ne fait pas de poignées de fichiers gratuites Tague Manger pendant le traitement.

Malheureux Je n'ai pas trouvé une certaine méthode de rubis dans taglib-ruby API, qui appelle finalement un ou mieux Taguements Functions C:

taglib_tag_free_strings();
taglib_file_free(file);

libmagic Ruby Bindings, par exemple, fournit un close-Méthode dans son Magic classe, de sorte que la libération qui s'assure que les blocs fonctionneront.

Est-ce que je manque juste la méthode Ruby correcte pour taglib-ruby Ou manque-t-il en ce moment? Existe-t-il une autre façon de libérer des poignées de fichiers acquises via Ruby?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top