FAT sanitizer

Have you ever had to move a lot of files from a sane filesystem to one that behaves more like FAT? Do these files have “strange” characters in their names, such as ‘:’, ‘?’, or ‘*’? This simple utility can rename these files so that the FAT-invalid characters are replaced with ‘_’. Works great for “fixing” the filenames on your music collection before transferring it to your portable audio player. You can download it here.

#!/usr/bin/env ruby
 
require 'find'
 
bad_str = ":<>\\|*?\""
bad_files = Array.new
 
Find.find(ARGV[0]) do |file|
	bad_files.push file
end
 
# reverse array so bad directories come after the files
bad_files.reverse!
 
bad_files.each do |file|
	basename = File.basename(file)
	if basename.count(bad_str) > 0
		dirname = File.dirname(file)
		new_file = File.join(dirname, basename.tr(bad_str, '_'))
		puts [file, ' -> ', new_file].join
		File.rename( file, new_file )
	end
end

Leave a Comment

You must be logged in to post a comment.