Skip to content

Instantly share code, notes, and snippets.

@lqdev
Created March 6, 2021 23:52
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 lqdev/9c1eff502f725a24cb67d7fc7d7cddd9 to your computer and use it in GitHub Desktop.
Save lqdev/9c1eff502f725a24cb67d7fc7d7cddd9 to your computer and use it in GitHub Desktop.
Script to delete old podcasts
(***
Delete all files from subdirectories except most recently modified file
Example: dotnet fsi clean-podcasts.fsx "C:\Downloads"
***)
open System.IO
// Get directories
let getDirectories topDir =
let dir = DirectoryInfo(topDir)
dir.GetDirectories()
// Operation to delete files
let deleteFiles (dir:DirectoryInfo) =
let files =
dir.GetFiles()
|> Array.sortByDescending(fun file -> file.LastWriteTime)
// Make sure that there are more than 1 episodes
if files.Length > 1 then
files
|> Array.tail
|> Array.iter(fun file -> file.Delete())
// run
let args = fsi.CommandLineArgs
let topDir = args.[1]
getDirectories topDir
|> Array.iter(deleteFiles)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment