now updating file size in the database when the file has changed.
[utils] / mythtv / src / main / java / org / wamblee / mythtv / LinkStructure.java
index 142cfe5d899e763068344892106c5e73a55ab9fe..486723373f60e3e39de5e651f5adaf6a48313653 100644 (file)
@@ -34,7 +34,7 @@ public class LinkStructure implements Listener {
 
     private static final Log LOG = LogFactory.getLog(LinkStructure.class);
 
-    private String _monitorDir = "/mnt/vcr";
+    private String _monitorDir;
 
     private File _linkDir;
 
@@ -47,11 +47,21 @@ public class LinkStructure implements Listener {
     public LinkStructure(String aMonitorDir, File aLinkDir,
             RecordingDatabase aDatabase) {
         _monitorDir = aMonitorDir + "/";
+        deleteDir(aLinkDir);
         _linkDir = aLinkDir;
         _database = aDatabase;
         _format = new SimpleDateFormat("yyyy-MM-dd-HH:mm");
         _recordings = new HashMap<File,Recording>();
     }
+    
+    private void deleteDir(File aFile) { 
+        for (File file: aFile.listFiles()) { 
+            if ( file.isDirectory()) { 
+                deleteDir(file);   
+            }
+            LOG.info("File deleted " + file + ": " + file.delete()); 
+        }
+    }
 
     /*
      * (non-Javadoc)
@@ -64,6 +74,8 @@ public class LinkStructure implements Listener {
         // Re-assess file type
         Recording recording = _recordings.get(aFile);
         LOG.debug("Recording changed " + recording);
+        recording.setFilesize(aFile.length());
+        _database.update(recording);
         String dir = getDirectory(recording);
         FileType type = getFileType(aFile);
         String path = dir + "/" + getFilename(recording, type);
@@ -109,6 +121,7 @@ public class LinkStructure implements Listener {
         LOG.debug("file deleted " + aFile);
         Recording recording = _recordings.get(aFile);
         _recordings.remove(recording);
+        // mythtv will remove the recording from its database itself.
         LOG.info("recording deleted " + recording);
         String dir = getDirectory(recording);
         for (FileType t: FileType.values()) {
@@ -118,7 +131,7 @@ public class LinkStructure implements Listener {
     }
 
     private String getDirectory(Recording aRecording) {
-        return aRecording.getTitle();
+        return aRecording.getTitle().replaceAll("/", "-");
     }
 
     private FileType getFileType(File aFile) {