public static DirectoryInfo CreateDateBasedFolderStructure(this DateTime now, DirectoryInfo rootFolder)
{
try {
var result = rootFolder
.CreateSubdirectory(now.Year.ToString())
.CreateSubdirectory(now.Month.ToString().PadLeft(2, '0'))
.CreateSubdirectory(now.Day.ToString().PadLeft(2, '0'));
return result;
}
catch(ArgumentNullException ex)
{
// Null path
throw ex;
}
catch(ArgumentException ex)
{
// Invalid path
throw ex;
}
catch(DirectoryNotFoundException ex)
{
// Missing path
throw ex;
}
catch(PathTooLongException ex)
{
// Folder or path name is too long
throw ex;
}
catch(IOException ex)
{
// Directory or file cannot be created
throw ex;
}
catch(Exception ex)
{
// Any other exception that wasn't already handled
throw ex;
}
}
Comments