Ne peut pas utiliser de Fichier.supprimer pour supprimer le fichier
Système:
Windows Server 2008 Ruby 192
dans 'delete': Permission denied Errno:EACCES
la ligne: Fichier.delete('nom du fichier.ext')
Si vous savez de toute autre méthode pour supprimer le fichier sans passer par cette erreur, je suis heureux de distribuer quelques points 🙂 je veux dire que toute aide serait appréciée ;-p
J'ai été soupçonner que le fichier n'est pas fermé, mais il est fermé.
Code Source:
Dir.foreach(FileUtils.pwd()) do |f|
a[i] = f
if a[i].end_with?('log')
file = File.open(a[i])
if file.ctime < TIME_TO_REMOVE_LOGS || file.mtime < TIME_TO_REMOVE_LOGS || File.size(a[i]) > MAX_FILE_SIZE
puts a[i]
puts file.ctime
puts file.mtime
# zipping the file
orig = a[i]
Zlib::GzipWriter.open('arch_log.gz') do |gz|
gz.mtime = File.mtime(orig)
gz.orig_name = orig
gz.write IO.binread(orig)
end
file.close
end
end
File.delete(a[i])
i = i + 1
end
OriginalL'auteur Jackie Chan | 2012-02-08
Vous devez vous connecter pour publier un commentaire.
Il n'est pas fermé. Le fichier ne se ferme parfois en fonction ctime. Il y a beaucoup de mal avec votre code, mais le point principal est cela: être sûr de votre fichiers et l'utilisation d'un bloc.
Également donner à vos variables des meilleurs noms.
c'est probablement vrai, mais je n'ai pas envie de réécrire son code. Vous êtes les bienvenus pour essayer.
Si vous vous sentez que le code est erroné, pourriez-vous me dire par où commencer pour l'améliorer? Ou Quelles parties du code sont mauvais?
Ma suggestion est de fixer les choses que j'ai mentionnées et ensuite de poster une nouvelle question "quel est le problème avec le code suivant" ou probablement mieux serait de le soumettre à codereview.stackexchange.com
Yup, qui ont un sens, merci
OriginalL'auteur pguardiario