RSS

Windows から画像をまとめて Linux へ転送したとき、紛れ込んだ Thumbs.db を削除するには

20 10月

Windows では画像ファイルの置いてあるフォルダに隠しファイル thumbs.db というサムネイルのキャッシュを保存するファイルが作られる。

このフォルダごと Linux へ FTP 転送などを行うと、この隠しファイルが紛れ込んでしまう。次の ruby スクリプトは Linux に転送された Windows の画像フォルダを再帰的に検索して Windows の隠しファイルを削除する。

#  ディレクトリに含まれるすべての Desktop.ini, Thumbs.db を削除

def deleteKs(path)
  if FileTest.directory?(path) then  # ディレクトリかどうかを判別
    Dir.foreach(path) do |file|
      next if file == '.' or file == '..'  # 上位ディレクトリと自身を対象から外す
      deleteKs(path.sub(/\/+$/,"") + "/" + file)
    end
  else
    name = File.basename(path)
    if name == 'Desktop.ini' or name == 'Thumbs.db' then
      puts "deleting .. " + path
      File.delete(path)
    end
  end
end

# main
if ARGV.size > 0 then
  if FileTest.exists?(ARGV[0]) then
    deleteKs(ARGV[0])
    puts 'Done.'
  else
    puts ARGV[0] + ' does not exists.'
  end
else
  puts 'Usage: deleteKasu dir'
end
 
コメントする

投稿者: : 2016/10/20 投稿先 Linux, Ruby

 

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

 
%d人のブロガーが「いいね」をつけました。