« [lsof]プロセスが握っているファイルの一覧を出力する | トップページ | [アドオン]JavaScriptデバッガーを開く »

メタル(com.apple.metal)のキャッシュをゴミ箱に入れる


AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#com.cocolog-nifty.quicktimer.icefloe
004# /var/folders/XXX/XXX/Cは主にメタルのキャッシュなので
005# 表示がおかしくなった時のみ有効 それ以外の場合はこの処理は不要
006----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
007use AppleScript version "2.8"
008use framework "Foundation"
009use framework "AppKit"
010use framework "UniformTypeIdentifiers"
011use scripting additions
012property refMe : a reference to current application
013
014#対象の検索語句
015#この語句にマッチしたキャッシュをゴミ箱に入れます
016set strSearchkey to ("com.blackmagic") as text
017
018#T テンポラリーディレクトリ
019set appFileManager to refMe's NSFileManager's defaultManager()
020set ocidTempDirURL to appFileManager's temporaryDirectory()
021set ocidContainerDirPathURL to ocidTempDirURL's URLByDeletingLastPathComponent()
022#C キャッシュディレクトリ
023set strDirName to "C" as text
024set ocidCdirPathURL to ocidContainerDirPathURL's URLByAppendingPathComponent:(strDirName) isDirectory:(true)
025#コンテンツの収集
026set ocidOption to (refMe's NSDirectoryEnumerationSkipsHiddenFiles)
027set ocidKeyArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
028#####収集するキー
029ocidKeyArray's addObject:(refMe's NSURLPathKey)
030ocidKeyArray's addObject:(refMe's NSURLContentModificationDateKey)
031set listResponse to (appFileManager's contentsOfDirectoryAtURL:(ocidCdirPathURL) includingPropertiesForKeys:(ocidKeyArray) options:(ocidOption) |error| :(reference))
032if (item 2 of listResponse) = (missing value) then
033  set ocidFilePathURLArray to (item 1 of listResponse)
034else if (item 2 of listResponse) ≠ (missing value) then
035  set strErrorNO to (item 2 of listResponse)'s code() as text
036  set strErrorMes to (item 2 of listResponse)'s localizedDescription() as text
037  refMe's NSLog("■:" & strErrorNO & strErrorMes)
038  return "エラーしました" & strErrorNO & strErrorMes
039end if
040#パスのソート
041set ocidDescriptorsArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
042set ocidDescriptor to refMe's NSSortDescriptor's sortDescriptorWithKey:("absoluteString") ascending:(no) selector:("localizedStandardCompare:")
043ocidDescriptorsArray's addObject:(ocidDescriptor)
044set ocidSortedURLArray to ocidFilePathURLArray's sortedArrayUsingDescriptors:(ocidDescriptorsArray)
045#リソース格納用のArray
046set ocidResourceArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
047#全てのパスURLを順番に
048repeat with itemSortedURLArray in ocidSortedURLArray
049  #リソースキーをDictで取得して
050  set listResponse to (itemSortedURLArray's resourceValuesForKeys:(ocidKeyArray) |error| :(reference))
051  set ocidResourceValues to (item 1 of listResponse)
052  #Arrayに順に格納していく
053  (ocidResourceArray's addObject:(ocidResourceValues))
054end repeat
055#ソートの定義(ファイル更新日順)
056set ocidDescriptorsArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
057set ocidDescriptor to refMe's NSSortDescriptor's sortDescriptorWithKey:(refMe's NSURLLocalizedTypeDescriptionKey) ascending:(yes) selector:("localizedStandardCompare:")
058ocidDescriptorsArray's addObject:(ocidDescriptor)
059set ocidDescriptor to refMe's NSSortDescriptor's sortDescriptorWithKey:(refMe's NSURLContentModificationDateKey) ascending:(no)
060ocidDescriptorsArray's addObject:(ocidDescriptor)
061#ファイルの修正日でソート
062set ocidSortedResourceArray to ocidResourceArray's sortedArrayUsingDescriptors:(ocidDescriptorsArray)
063#並び変わった日付順のパス
064repeat with itemSortedURLArray in ocidSortedResourceArray
065  set strFilePath to (itemSortedURLArray's valueForKey:("_NSURLPathKey")) as text
066  set dateModDate to (itemSortedURLArray's valueForKey:("NSURLContentModificationDateKey")) as date
067  if strFilePath contains strSearchkey then
068    #NSURLにして
069    set ocidGoToTrashURL to (refMe's NSURL's alloc()'s initFileURLWithPath:(itemSortedURLArray's valueForKey:("_NSURLPathKey")) isDirectory:true)
070    #ゴミ箱へ入れる
071    set ListDone to (appFileManager's trashItemAtURL:(ocidGoToTrashURL) resultingItemURL:(ocidGoToTrashURL) |error| :(reference))
072    if (item 2 of ListDone) ≠ (missing value) then
073      set strErrorNO to (item 2 of ListDone)'s code() as text
074      set strErrorMes to (item 2 of ListDone)'s localizedDescription() as text
075      refMe's NSLog("■:" & strErrorNO & strErrorMes)
076      return "エラーしました" & strErrorNO & strErrorMes
077    end if
078    
079  end if
080end repeat
081
082
083
084
085
086
AppleScriptで生成しました

|

« [lsof]プロセスが握っているファイルの一覧を出力する | トップページ | [アドオン]JavaScriptデバッガーを開く »

Admin Maintenance」カテゴリの記事