initial commit
This commit is contained in:
commit
f6a2ba3674
|
|
@ -0,0 +1,3 @@
|
|||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_19" default="true" project-jdk-name="openjdk-19" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/PhotoMemories.iml" filepath="$PROJECT_DIR$/PhotoMemories.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,165 @@
|
|||
import java.awt.*;
|
||||
import java.io.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.TreeMap;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class Main {
|
||||
|
||||
ArrayList<File> dirs = new ArrayList<>();
|
||||
static TreeMap<String, ArrayList<File>> cal = new TreeMap<>();
|
||||
public static void main(String[] args) throws InterruptedException {
|
||||
//\\schatzkammer\homes\bene\Photos\MobileBackup\A52s von Benedikt\DCIM\Camera
|
||||
//P:\Android Xcover2
|
||||
|
||||
//findDirsFrom2009();
|
||||
readFile("cal_2009-2023.txt");
|
||||
readFile("cal_androidXcover2.txt");
|
||||
readFile("cal_A52s.txt");
|
||||
//createFile();
|
||||
//traverse(new File("\\\\schatzkammer\\homes\\bene\\Photos\\MobileBackup\\A52s von Benedikt\\DCIM\\Camera"), true, "([0-9]{4})([0-9]{2})([0-9]{2})");
|
||||
//createFile();
|
||||
while(true) {
|
||||
showRandomImageOfDay("07-03");
|
||||
Thread.sleep(2000);
|
||||
}
|
||||
}
|
||||
|
||||
static void showRandomImageOfDay(String date)
|
||||
{
|
||||
ArrayList<File> temp = cal.get(date);
|
||||
showImage(getRandomFile(temp));
|
||||
}
|
||||
|
||||
static File getRandomFile(ArrayList<File> list)
|
||||
{
|
||||
Random rand = new Random();
|
||||
int randomIndex = rand.nextInt(list.size());
|
||||
File f = list.get(randomIndex);
|
||||
if(f.isDirectory())
|
||||
{
|
||||
File[] children = f.listFiles();
|
||||
if(children.length == 0)
|
||||
return getRandomFile(list);
|
||||
randomIndex = rand.nextInt(children.length);
|
||||
return children[randomIndex];
|
||||
}
|
||||
return f;
|
||||
}
|
||||
|
||||
static void showImage(File file)
|
||||
{
|
||||
System.out.println(file.getAbsolutePath());
|
||||
if (Desktop.isDesktopSupported()) {
|
||||
try {
|
||||
Desktop desktop = Desktop.getDesktop();
|
||||
desktop.open(file);
|
||||
} catch (IOException ex) {}
|
||||
}
|
||||
}
|
||||
|
||||
static void readFile(String filename)
|
||||
{
|
||||
try (BufferedReader reader = new BufferedReader(new FileReader(filename))) {
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
String[] lineS = line.split("_:_");
|
||||
String key = lineS[0];
|
||||
if(!cal.containsKey(key))
|
||||
cal.put(key, new ArrayList<>());
|
||||
lineS = lineS[1].split(",");
|
||||
for(String s: lineS)
|
||||
{
|
||||
File f = new File(s);
|
||||
if(!f.exists())
|
||||
{
|
||||
System.out.print("ERROR "+f+" existiert nicht!");
|
||||
|
||||
}
|
||||
else{
|
||||
cal.get(key).add(f);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
static void findDirsFrom2009()
|
||||
{
|
||||
for (int i = 2009; i < 2100; i++) {
|
||||
File temp = new File(i+"");
|
||||
if(temp.exists())
|
||||
traverse(temp, false, "([0-9]{4})[-_]([0-9]{2})[-_]([0-9]{2})");
|
||||
}
|
||||
}
|
||||
|
||||
static void createFile()
|
||||
{
|
||||
Map.Entry<String, ArrayList<File>> entry = cal.pollFirstEntry();
|
||||
try {
|
||||
FileWriter fw = new FileWriter("output.txt");
|
||||
while(entry != null)
|
||||
{
|
||||
fw.append(entry.getKey()).append("_:_");
|
||||
for(File file: entry.getValue())
|
||||
{
|
||||
fw.append(file.getAbsolutePath()).append(",");
|
||||
}
|
||||
fw.append("\n");
|
||||
entry = cal.pollFirstEntry();
|
||||
|
||||
}
|
||||
|
||||
System.out.println("Der FileWriter hat die Datei erfolgreich beschrieben!");
|
||||
fw.close();
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
public static void traverse(File directory, Boolean findFiles, String pattern)
|
||||
{
|
||||
File[] files = directory.listFiles();
|
||||
for (File file : files) {
|
||||
if(file.isDirectory() )
|
||||
{
|
||||
//File is a file
|
||||
Pattern pPattern = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE);
|
||||
String filename = file.getName();
|
||||
Matcher matcher = pPattern.matcher(filename);
|
||||
if(matcher.find()){
|
||||
String key = matcher.group(2)+"-"+matcher.group(3);
|
||||
if(!cal.containsKey(key))
|
||||
{
|
||||
cal.put(key, new ArrayList<>());
|
||||
}
|
||||
cal.get(key).add(file);
|
||||
}
|
||||
traverse(file, findFiles, pattern);
|
||||
|
||||
}
|
||||
else if(findFiles)
|
||||
{
|
||||
//File ist ein Directory
|
||||
Pattern pPattern = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE);
|
||||
String filename = file.getName();
|
||||
Matcher matcher = pPattern.matcher(filename);
|
||||
if(matcher.find()){
|
||||
String key = matcher.group(2)+"-"+matcher.group(3);
|
||||
if(!cal.containsKey(key))
|
||||
{
|
||||
cal.put(key, new ArrayList<>());
|
||||
}
|
||||
cal.get(key).add(file);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="GENERAL_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
Loading…
Reference in New Issue