JJZolx;665922 Wrote: 
> You can easily launch your script from within Mp3tag if you like. Look
> into the 'Tools' feature, which can run external programs and has an
> option to run just once per directory. You add tools in Options >
> Tools.

That's cool.  I'll take a look at that.

Mine was designed to use the Windows interface rather than be
command-line but that's a really simple change.  And the code I posted
was really just the raw code to actually execute the changes rather
than with any bells and whistles.

This version still doesn't have many bells and whistles but does allow
directory traversal and gives feedback on how many files/folders have
been processed:


Code:
--------------------
    
  ' Bumps file modified dates for FLAC files in the directory specified by 2 
seconds
  ' in order to get Squeezebox Server to recognise the changed timestamp but to 
keep
  ' the albums in the correct added sequence.
  ' 2 seconds is chosen because of granularity limits on certain file systems.
  
  Dim strDirectory
  Dim fsoFileSystem
  Dim intFilesProcessed
  Dim intFoldersProcessed
  
  strDirectory = InputBox ("Root directory for processing", "Date Bump")
  intFilesProcessed = 0
  intFoldersProcessed = 1
  
  If strDirectory <> "" Then
  Set fsoFileSystem = CreateObject ("Scripting.FileSystemObject")
  Call ProcessDirectory (strDirectory)
  Set fsoFileSystem = Nothing
  MsgBox intFilesProcessed & " file(s) and " & intFoldersProcessed & " 
folder(s) processed", 0, "Date Bump"
  End If
  
  Sub ProcessDirectory (strDirectory)
  
  Dim strFilename
  Dim objShell
  Dim dtModifiedDate
  Dim objDirectory
  Dim objFile
  
  Set objDirectory = fsoFileSystem.getFolder (strDirectory)
  
  ' Process each file in the directory, affecting only .FLAC files
  For Each objFile In objDirectory.Files
  strFilename = objFile.Name
  If UCase (Right (strFilename, 5)) = ".FLAC" Then
  dtModifiedDate = objFile.DateLastModified
  Set objShell = CreateObject ("Shell.Application")
  ' Change the last modified date to previous date plus 2 seconds
  objShell.NameSpace (strDirectory).ParseName (strFilename).ModifyDate = 
DateAdd ("S", 2, dtModifiedDate)
  Set objShell = Nothing
  intFilesProcessed = intFilesProcessed + 1
  End If
  Next
  
  ' Process directories
  For Each objFile In objDirectory.SubFolders
  intFoldersProcessed = intFoldersProcessed + 1
  Call ProcessDirectory (strDirectory & "\" & objFile.Name)
  Next
  
  Set objDirectory = Nothing
  
  End Sub
  
--------------------


-- 
paulster

Receiver stuck at blue LED state after reboot? Please vote for bug
'17462' (http://bugs.slimdevices.com/show_bug.cgi?id=17462)
Web Interface sending music to the wrong player? Please vote for bug
'17144' (http://bugs.slimdevices.com/show_bug.cgi?id=17144)
------------------------------------------------------------------------
paulster's Profile: http://forums.slimdevices.com/member.php?userid=23073
View this thread: http://forums.slimdevices.com/showthread.php?t=91155

_______________________________________________
beta mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/beta

Reply via email to