この前東京湾を通った台風の強風も凄かったが、
私は新聞をとってないが、
その新聞社を含めて新聞社関連のサイトには多数の写真が掲載され
そんな場合、
ただ自分のパソコンで写真を表示したということは、
勿論、著作権を考慮して、
ネットで調べればすぐわかるが、WindowsではC:\
エクスプローラーでローカルディスク(C:)からユーザー、
C:\Users\(ユーザ名)\AppData
もしユーザー名がNavafaなら、C:\Users\
AppDataフォルダ下には、Local、LocalLow、
ブラウザがMicrosoft Edgeの場合、以下のフォルダにキャッシュデータを保存。
C:\Users\(ユーザ名)\AppData\Local\
だたこの下にも複数の隠しフォルダがあり目的のフォルダを探すの
そしてお目当ての静止画ファイルが見つかれば、
話が前後するが、保存しておきたい写真に出会った場合は、
ブラウザのキャッシュデータを削除するには以下のフリーソフトが
https://forest.watch.impress.
このCCleanerには有料版もあるが無料版で十分だ。
私はMicrosoftのBingDesktopもインストール
C:\Users\(ユーザ名)\AppData\Local\
話をブラウザに戻して、
C:\Users\(ユーザ名)\AppData\Local\
このフォルダには、index、data_0、data_1、
だからどれが静止画ファイルなのかわからない。
Shiftキーを押して左クリックすることで多数のファイルを指
手で一つずつファイルに拡張子を付ければいいのだが、
そこで前回紹介したフォルダ単位でファイルの名称変更するJav
そのプログラムがrenameFiles5.java。
このプログラムでは引数をさらに一つ追加して、
またファイル名変更する対象となる拡張子の".bmp"、".
結局、拡張子を指定する引数には二つの意味があるわけで、
プログラム内部では拡張子の比較を小文字ベースで行っているから
最終的にrenameFiles5の引数は、フォルダ名、
そのファイル番号だが、
なお新旧二つの拡張子を指定してファイル名は変更せずに拡張子だ
興味がある人には各ソースコードを読んでもらうことにして、
以下のサイトから、
https://www.sony.jp/ichigan/a-
それらの写真を右クリックして、
手順は以下の通り。
1. Google Chromeで上記のサイトをブックマークする。
2. CCleanerを実行してGoogle Chromeのキャッシュデータをクリアする。
3. Chromeで上記のサイトを表示し好みの写真家を選んでその写
4. Windowsコマンドプロンプト(cmd.exe)
5. cmd.exeから以下のコマンドを実行する。
java renameFiles5 "C:\Users\(ユーザ名)\AppData\
Chrome Cacheフォルダは"User Data"のように半角空白(0x20)を含む部分があるので、ダブルクォート(")で囲むのは必須。
6. エクスプローラーでChrome Cacheフォルダを表示する。その際に、表示方式を
7. あとは残った写真ファイルを自分のPicturesフォルダの下
renameFiles5の代わりにrenameExts1を使
java renameExts1 "" jpg "C:\Users\(ユーザ名)\AppData\
renameExts1の引数は、renameExts1 旧拡張子 新拡張子 フォルダ名 の順に指定。これは拡張子が何もない("")ファイルに拡張子(".jpg"
以下のその逆の指定は、拡張子".jpg"
java renameExts1 jpg "" "C:\Users\(ユーザ名)\AppData\
以下の指定は、拡張子".jpg"を大文字の".JPG"
java renameExts1 jpg JPG "C:\Users\(ユーザ名)\AppData\
なお私はChrome CacheとBingDesktop themesの2つのフォルダはショートカットを作成しているので、
また各写真にコメントを付加したい場合は、
私は若い頃アセンブラ言語とC言語のプログラミングで給料をもら
私の印象では、
------------------- renameFiles5.java ------------------------------
import java.io.*;
import java.text.*;
class renameFiles5
{
/**
* Rename picture files in folder main.
*
* @param args[0] folder name.
* @param args[1] file number.
* @param args[2] extension name.
* @return void.
**/
public static void main(String[] args)
{
try
{
File fileobj;
int fileno = 0;
String extname =".jpg";
if (args.length > 0)
{
fileobj = new File(args[0]);
if (args.length > 1)
{
fileno = Integer.parseInt(args[1]);
if (args.length > 2)
{
extname = "." + args[2];
}
}
}
else
{
fileobj = new File(".");
}
String path = fileobj.getAbsolutePath();
path = arrangePath1(path);
path = arrangePath2(path);
fileobj = new File(path);
renameFilesInFolder(fileobj, fileno, extname);
}
catch (Exception e)
{
printError(e);
System.out.println("Usage: java renameFiles5 [FolderName, [FileNo, [ExtName]]]");
}
}
/**
* Rename picture files in folder function.
* picture file types are bmp, jpg, png and gif.
*
* @param fileobj File class instance.
* @param fileno file number.
* @param extname extension name.
* @return fileno file number.
**/
private static int renameFilesInFolder(File fileobj, int fileno, String extname)
{
try
{
boolean reset = false;
if (fileno <=0)
{
reset = true;
fileno = 1;
}
String path = fileobj.getAbsolutePath();
System.out.println("*** AbsolutePath : " + path);
int pos = searchBackSlash(path);
if (fileobj.isDirectory())
{
String folder = path.substring(pos + 1, path.length());
File[] filelist = fileobj.listFiles();
for (int i = 0; i < filelist.length; i++)
{
if (filelist[i].isDirectory())
{
if(reset)
{
renameFilesInFolder(filelist[
}
else
{
fileno = renameFilesInFolder(filelist[
}
}
else
{
if (renameFile(filelist[i], path, folder, fileno, extname))
{
fileno++;
}
}
}
}
else
{
path = path.substring(0, pos);
pos = searchBackSlash(path);
String folder = path.substring(pos + 1, path.length());
if (renameFile(fileobj, path, folder, fileno, extname))
{
fileno++;
}
}
}
catch (Exception e)
{
printError(e);
}
return fileno;
}
/**
* Rename picture file.
* picture file types are bmp, jpg, png and gif.
*
* @param fileobj File class instance.
* @param path path name.
* @param folder folder name.
* @param fileno file number.
* @param extname extension name.
* @return boolean true(success) or false(failure).
**/
private static boolean renameFile(File fileobj, String path, String folder, int fileno, String extname)
{
try
{
String name = fileobj.getName();
for (int i = name.length() - 1; i >= 0 ; i--)
{
String temp = name.substring(i, i + 1);
if (temp.startsWith("."))
{
String ext = name.substring(i, name.length());
ext = ext.toLowerCase();
if (ext.startsWith(".bmp") || ext.startsWith(".jpg") || ext.startsWith(".png") ||
ext.startsWith(".gif") || ext.startsWith(extname))
{
return renameFileOnly(fileobj, path, folder, fileno, ext);
}
return false;
}
}
return renameFileOnly(fileobj, path, folder, fileno, extname);
}
catch (Exception e)
{
printError(e);
}
return false;
}
/**
* Rename picture file only.
*
* @param fileobj File class instance.
* @param path path name.
* @param folder folder name.
* @param fileno file number.
* @param extname extension name.
* @return boolean true(success) or false(failure).
**/
private static boolean renameFileOnly(File fileobj, String path, String folder, int fileno, String extname)
{
try
{
String name = fileobj.getName();
DecimalFormat noformat = new DecimalFormat("0000");
String newname = new String(path + "\\" + folder + "-" + noformat.format(fileno) + extname);
File newfile = new File(newname);
if (fileobj.renameTo(newfile))
{
System.out.println("Rename Success.: " + name + " -> " + newname);
return true;
}
else
{
System.out.println("Rename Failure!: " + name + " -> " + newname);
}
}
catch (Exception e)
{
printError(e);
}
return false;
}
/**
* Arrange Path for "\.".
*
* @param path path name.
* @return String path.
**/
private static String arrangePath1(String path)
{
System.out.println("*** ArrangingPath1 : " + path);
if (path.length() > 3)
{
int pos = path.indexOf("\\.\\");
if (pos > 0)
{
return arrangePath1(path.substring(0, pos) +
path.substring(pos + 2, path.length()));
}
else
{
String temp = path.substring(path.length() - 2, path.length());
if (temp.startsWith("\\."))
{
return path.substring(0, path.length() - 2);
}
}
}
return path;
}
/**
* Arrange Path for "\..".
*
* @param path path name.
* @return String path.
**/
private static String arrangePath2(String path)
{
System.out.println("*** ArrangingPath2 : " + path);
if (path.length() > 3)
{
int pos = path.indexOf("\\..");
if (pos > 0)
{
String pathlower = "";
if (path.length() > pos + 3)
{
pathlower = path.substring(pos + 3, path.length());
}
String pathupper = "";
int pos2 = searchBackSlash(path.
if (pos2 > 0)
{
pathupper = path.substring(0, pos2);
}
return arrangePath2(pathupper + pathlower);
}
}
return path;
}
/**
* Search '\' character in path form path tail.
*
* @param path path name.
* @return int position of '\'.
**/
private static int searchBackSlash(String path)
{
for (int i = path.length() - 1; i >= 0 ; i--)
{
String temp = path.substring(i, i + 1);
if (temp.startsWith("\\"))
{
return i;
}
}
return -1;
}
/**
* Print Error.
*
* @param e exception.
* @return void.
**/
private static void printError(Exception e)
{
System.out.println("Error!: " + e);
}
}