Skip to content

Instantly share code, notes, and snippets.

Created May 17, 2012 07:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/2717185 to your computer and use it in GitHub Desktop.
Save anonymous/2717185 to your computer and use it in GitHub Desktop.
選択したフォルダ内にある画像をサムネイルに設定 (X-Finder用)
/* 選択したフォルダ内にある画像をサムネイルに設定 (X-Finder用) */
var IMAGE_FILE_EXT = /\.(bmp|gif|jpe?g|png|tif)$/i; // 検索する画像ファイルの拡張子
function FindImageFile (folderItems, reImageFileName){
for (var i = 0; i < folderItems.Count; ++i){
var folderItem = folderItems.Item(i);
if (!folderItem.IsFolder && folderItem.Name.match(reImageFileName ? reImageFileName : IMAGE_FILE_EXT)){
return folderItem;
}
}
for (var i = 0; i < folderItems.Count; ++i){
var folder = folderItems.Item(i).GetFolder;
if (folder){
return FindImageFile(folder.Items(), reImageFileName);
}
}
return false;
}
var fso = new ActiveXObject("Scripting.FileSystemObject");
function CreateTempFolder (){
return fso.CreateFolder(fso.GetSpecialFolder(2) + "\\" + fso.GetTempName());
}
var shell = new ActiveXObject("Shell.Application");
function SetFolderThumbnail (vDir, reImageFileName){
try{
var imgFile = FindImageFile(shell.NameSpace(vDir).Items(), reImageFileName);
}catch(e){
return false;
}
if (imgFile){
var tmpFolder = CreateTempFolder();
shell.NameSpace(tmpFolder.Path).CopyHere(imgFile);
WScript.Exec("Thumbnail:"
+ "\"" + tmpFolder.Path + "\\" + imgFile.Name + "\""
+ "\"" + vDir + ":thumbnail.jpg\"");
tmpFolder.Delete();
return true;
}else{
return false;
}
}
function SetSelectedFolderThumbnail (reImageFileName){
var selected = WScript.Env("Selected").match(/"[^"]+?"|[^ ]+/g);
for (var i = 0; i < selected.length; ++i){
SetFolderThumbnail(selected[i].match(/[^"]+/)[0], reImageFileName);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment