FileSieve 4

This is the tracker for FileSieve 4.

If you have a bug report, feature, or suggestion, then please add a new task. Creating an account will allow you to keep track of your tasks and their status.

IDCategoryTask TypePriority  descSeveritySummaryStatusProgress
 51 Backend / CoreOverhaulVery HighCritical Change "Premium Plugins" demo restriction to some other ...Closed
100%
Task Description

Sorry guys, but I can no longer offer my software for free - it’s gotten me no-where the last two decades, so...

 53 Backend / CoreChangeVery HighCritical Move features out into the Registered plugin Closed
100%
Task Description

no task description

 90 PluginBug Report (major)Very HighCritical Profiles that have settings for a no-longer available p ...Closed
100%
Task Description

no task description

 91 Backend / CoreBug Report (major)Very HighCritical Make sure all settings are saved on a per-profile basis Closed
100%
Task Description

no task description

 93 PluginBug Report (major)Very HighCritical Save per-profile plugin settings within each Profile's  ...Closed
100%
Task Description

no task description

 94 InterfaceBug Report (major)Very HighCritical Closing Method/Modifier window causes Disposed exceptio ...Closed
100%
Task Description

Closing the Method/Modifer selection window with the titlebar close button results in a Disposed error when opening the window again.

 281 Backend / CoreBug Report (major)Very HighCritical Method/Modifier settings not being correctly loaded/ass ...Closed
100%
Task Description

There’s something very wrong with the whole Profile and Method/Modifier interaction in regards to the currently active settings.

Profile.Active.ActiveMethod.MethodSettings contains the correct settings
Profile.Active.ActiveMethod.Method.Settings contains the INCORRECT settings

 330 Backend / CoreBug Report (major)Very HighCritical Overwrite Rules only generating a single rename mask Closed
100%
Task Description

When FileSieve (FS) encounters a file that already exists in the destination and the user has set some overwrite rules, FS generates a filename based on the entered Rename Mask and tests to see if that exists. If it does, it then generates another name (based on the # code (%file_number% in 4.36); that hash symbol represents a number that is incremented each time an on-disk collision is detected) and tests that.

Due to a bug in 4.35 and earlier (unknown at which point the bug was introduced but it may have been due to some major changes to the engine code - specifically the Prescanning step - so FS can gather additional metadata on files to give plugins more control and flexibility), the first attempt at generating a filename was always successful regardless of if that file existed on-disk.

The reason for this is that it was using the wrong path to check for the file’s existence.

Fixed in 4.36.

 249 Backend / CoreBug Report (major)Very HighHigh Creating a new Profile called "New Profile" results in  ...Closed
100%
Task Description

Using the Profile Manager, clicking on New but keeping the default New Profile name and hitting enter doesn’t rename the Guid-based on-disk file to “New Profile” and instead keeps the generated Guid.

Discovered while implementing the new Trigger system.

 262 InterfaceBug Report (major)Very HighHigh Exception: Value of '720' is not valid for 'Value' Closed
100%
Task Description

Exception: Value of ‘720’ is not valid for ‘Value’. ‘Value’ should be between ‘minimum’ and ‘maximum’. Parameter name: Value

at System.Windows.Forms.ProgressBar.set_Value(Int32 value)
at FS.Main.Core.Results.ResultsControls.UpdateProgressBar()

 316 Backend / CoreBug Report (major)Very HighHigh Pause/Stop: "Object reference not set to an instance of ...Closed
100%
Task Description

Message: Object reference not set to an instance of an object.

Runtime: 2485 seconds

at FS.Main.Core.Process.set_IsPaused(Boolean value)
at FS.Main.Core.Process.Stop()
at FS.Main.Forms.Main.cmdProcessing_Stop_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message m)
at System.Windows.Forms.ButtonBase.WndProc(Message m)
at System.Windows.Forms.Button.WndProc(Message m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Submitted via the Pique exception service; thanks to the submitter!

 343 Backend / CoreBug Report (major)Very HighHigh Source Item - Maximum File size reverts back to 0 Closed
100%
Task Description

The default value of the MaximumFilesize property was incorrectly set to 0 which resulted in the property’s value being set back to 0 if it was ever changed to -1 (minus one meaning that no max size check should be performed).

 345 Backend / CoreBug Report (major)Very HighMedium UNC paths cannot be specified via the command-line Closed
100%
Task Description

For example, the following path:

The first slash of the two leading slashes is being treated as a switch character and consequently is being stripped from the UNC, so textForge cannot open it correctly.

There is now a check within the BiQubic.Suite.Core.AppFramework library that now determines if a command-line parameter starts with a double-slash; if it does, then it is treated as an unswitched parameter.

24Backend / CoreBug Report (major)HighHighNo processed items prevents BeginInvoke from workingAssigned
0%
Task Description

Example: Classification Method not finding any matches if no items are processed.

The problem appears to be related to there being items to be processed, but they have all been set to Item.IsProcessed = False. This means that no items have been processed, which seems to cause a problem with the Windows Taskbar progress indicator.

Fixing this will have to be an ongoing process; in the meantime, EnableTaskbarProgress has been added to Settings - Advanced and should be set to False should the issue of the FileSieve window staying disabled after processing has completed.

 38 InterfaceOverhaulHighHigh Rewrite the Source Item Editor so it's more suited for  ...Closed
100%
Task Description

Expand the Source Item Editor to provide more fine-grained control over which items should both be included and excluded during scanning.

This’ll require a redesign of the editor.

 39 Backend / CoreOverhaulHighHigh Convert all I/O from XML to JSON format Closed
100%
Task Description

Let’s face it: XML is horrible, and .NET’s implementation is a cause of numerous headaches.

 40 InterfaceChangeHighHigh Change all references and uses of "xml" in file dialogs Closed
100%
Task Description

XML is being dropped, so remove all traces of XML.

 45 Backend / CoreBug Report (minor)HighHigh Move FileSieve 4 classes out to the FS.Plugins project Closed
100%
Task Description

no task description

 48 Backend / CoreEnhancementHighHigh Perform RegEx testing when clicking OK on a form with R ...Closed
100%
Task Description

no task description

 49 Backend / CoreFeatureHighHigh Backup and Restore Closed
100%
Task Description

no task description

 59 Backend / CoreTestHighHigh Fully test the software in virtual machines Closed
100%
Task Description

Test with the root of a drive, and a huge amount of *Source Items* and literally millions of files.

 70 InterfaceEnhancementHighHigh Version Registered plugin with FileSieve Closed
100%
Task Description

This allows FileSieve to check the version of the *Registered* plugin to see if it is the expected version; if it isn’t, FileSieve should prompt the user to update their license.

If the user doesn’t update their license, they may miss out on additional functionality their license unlocks.

 87 PluginBug Report (major)HighHigh IPlugin.Starting() isn't being called for Modifiers Closed
100%
Task Description

no task description

 89 APIEnhancementHighHigh Plugins: Applicable plugins need to utilise IPlugin.Val ...Closed
100%
Task Description

no task description

 92 Backend / CoreEnhancementHighHigh Plugins: Manually Initialise() so they have full contro ...Closed
100%
Task Description

no task description

 95 APIBug Report (minor)HighHigh Remove Profile(Method|Modifier)Data if no corresponding ...Closed
100%
Task Description

no task description

 97 PluginBug Report (major)HighHigh Deactivating a Modifier reactivates it when FileSieve i ...Closed
100%
Task Description

no task description

 100 InterfaceChangeHighHigh Update old Trello links to point to Tracker.BootBlock.c ...Closed
100%
Task Description

Now that the tracker at Bugs.BootBlock.co.uk is live and has replaced FileSieve @ Trello, all references to Trello should be replaced with the new tracker.

Although, saying that, I’m not sure the sub-domain should necessarily be called Bugs as it’s more than that. Maybe rename it to Tracker.

 155 PluginBug Report (major)HighHigh Method: Tag; path separator tags are being stripped Closed
100%
Task Description

See forum post.

This...

\%GENRE_FIRST%\%ALBUM_ARTIST_FIRST%\%ALBUM_TITLE%\

becomes this...

Y:\Music\ContemporaryTedCrillyA Song for Europe\FileName.mp3

Initial thoughts are that FileSieve is stripping slashes due to - possibly - a call to MakeFilesystemLegal().

 169 PluginBug Report (major)HighHigh EXIF plugin exception when selected in Methods window Closed
100%
Task Description

Selecting the EXIF plugin within the Methods window causes the following exception:

  • Error: The method or operation is not implemented
  • At: Method.Exif.Plugin.get_Capabilities()

For the end user, this exception can be safely ignored while a fix is being prepared.


This bug was submitted via the Pique exception service; big thanks to the user that reported this!

 170 InterfaceBug Report (minor)HighHigh Plugins need to close any child windows after use Closed
100%
Task Description

When the active plugin has opened a window (eg. the EXIF/Tag plugins have their own EXIF/Tag viewers) and the active plugin is changed to another plugin, the window belonging to the former plugin stays open. This results in a dangling reference and eventually an exception when the user/application closes that window.

Plugins that open any child windows will need to close those windows when the plugin becomes inactive.

Child windows are already closed on SettingsEditor.Closing(), but ideally an event should be added to SettingsEditor so plugins know when they’ve been deselected so they can take appropriate action - such as closing aforementioned child windows.

 172 PluginBug Report (major)HighHigh Verify Settings in Find Replace Method causes exception Closed
100%
Task Description

While the Find Replace method is selected within the Methods window, clicking on Verify Settings causes the following exception:

  • Error: Object reference not set to an instance of an object
  • At: FS.Main.Forms.Methods.Verify(Boolean onlyShowErrors)

—-
This bug was submitted via the Pique exception service; big thanks to the user that reported this!

 280 APIBug Report (major)HighHigh Incorrect Method settings not being loaded when >1 prof ...Closed
100%
Task Description

When there are multiple profiles defined, it appears the Method settings for one (maybe the first) profile is loaded despite another profile having been auto-selected at during startup.

Removing the extra profile results in the Method settings being correctly loaded for the profile.

Further testing is required to see if Modifiers - and anything else - are affected.

EDIT: Can’t seem to delete this task, so instead see the replacement task  FS#281 .

 31 Backend / CoreFeatureHighMedium Profile Processing Triggers Closed
100%
Task Description

Add support for Profile Triggering.

A Trigger allows the monitoring of certain events; when an event has been detected, the Trigger can then automatically start a Profile processing.

For example, the DateTime Trigger would auto-start a Profile based on a date and time - without any manual user interaction.

 101 InterfaceEnhancementHighLow Add button to regex Textboxes to show the Regex Tester Closed
100%
Task Description

Once the Regex Tester has been integrated, it would be worthwhile adding a little clickable button (probably a non-obtrusive image) to every Textbox that expects a regular expression input.

Clicking the button then shows the Regex Tester which can be used to create and test expressions, ultimately clicking Use should then insert the expression directly into the Textbox the Tester was invoked from.

 271 PluginFeatureHighLow Method: Mirror. Mirrors source items' structure Closed
100%
Task Description

Add a Mirror Method that simply mirrors the structure of each source item to the destination.

A straight-up file copy, in simplistic terms. Obviously won’t be as simple to code, but that’s it in a nutshell.

Not a walnut, because they taste weird.

 325 PluginFeatureHighLow Preserve datestamps for processed files Closed
100%
Task Description

When files are copied or moved to their destination, their date stamps (Created, Modified, Written) are changed to the date and time of when FileSieve processed them.

This may sound like a bug (and initially did to me when this was reported), but the files are that copied/moved are entirely new files - not the originals that are being processed. FileSieve uses its own I/O code that supports buffer optimisation, async I/O, and operation progress; so it isn’t manually setting the date/time stamps like the OS does when it itself performs the copy or move.

This task entry is to add a new feature to FileSieve that preserves those date and time stamps.

I’m somewhat undecided whether this should be a core FileSieve setting or implemented as a Modifier. FileSieve settings aren’t configurable on a per-Profile basis and so will more than likely be a Modifier. The only potential issue with it being a Modifier is that FileSieve doesn’t set “default” Modifiers; coupling a FileSieve setting with the Modifier itself will provide user convenience in-spite of that fact FileSieve will become (loosely) coupled with a plugin.


Thanks to Olivier C. for reporting

 327 Backend / CoreFeatureHighLow Additional Overwrite Rules Editor codes Closed
100%
Task Description

Add additional overwrite codes to the Overwrite Rules Editor, such as %created_year% (original file’s created date year), %created_month%, and so on.

When the Overwrite Rules Editor was originally implemented, FileSieve didn’t collect comprehensive metadata on the files it processed, such as file dates and the like. It’s been a while since metadata collection was added, so the rules editor needs to be updated to support that information.

IMPORTANT CHANGES TO SOME EXISTING CODES

 %file% is now %file_name%
 %ext% is now %file_ext%
 # is now %file_number%

Older codes are automatically upgraded to the new format.

 315 Backend / CoreBug Report (minor)HighVery Low Main window banner always says "This does something or  ...Closed
100%
Task Description

Due to moving over to the new, enhanced tooltips in 4.29, the banner in the main window isn’t having its default “This does something or whatever.” text updated to reflect the selected tab in the menu.

7PluginFeatureMediumMediumMethod: Size. Sort items based on Smallest/Largest/etcAssigned
40%
Task Description

This will be a FileSieve v4 update of the v3 plugin, with additional features.

8PluginFeatureMediumMediumMethod: Script. Allows users to write their own Method ...Assigned
40%
Task Description

If possible, extend this to Modifiers. Custom Modifers scripts was originally intended, but I can’t seem to remember why that’s a no-go.

Pressing Escape in any non-code editor should give focus to the code editor. This is VERY important and why I hate most code editors.

 11 Backend / CoreFeatureMediumMedium Command-line Support Closed
100%
Task Description

Being able to effectively - not literally - “emulate” the interface events should cover everyone’s needs.

Also being able to run various commands in one call would be very convenient, if not essential.

33Backend / CoreEnhancementMediumMediumPlugins need to dictate to FS what ultimately happens w...Assigned
0%
Task Description

Rather than just indicating what should happen to source items via the Copy Mode, plugins need to have the ultimate say in what happens to items/files during processing.

For example, the Archive Modifier compresses items into the destination location and the original file needs to either ignored (if Copy Mode is set to Copy), or deleted (if Copy Mode is set to Move).

The plugin(s) will then need to say “Okay, ignore/delete the original file but count it as being processed”.

The Delete functionality is implemented via the Item.DeletionMode property that is set via plugins, but this more than likely needs to be rolled into a general ProcessMode property to incorporate different types of outcomes that the plugin requires and FileSieve knows about.

 34 Backend / CoreOverhaulMediumMedium Add EnsureExists property to Source Items as well as th ...Closed
100%
Task Description

Each Source Item should have a setting that tells FS that the path must exist before processing can begin, or not, and Default. Default will instead use the Profile’s setting of Ensure Exists or not.

41Backend / CoreEnhancementMediumMediumAdd a version number to AppFramework system settings to...Assigned
0%
Task Description

no task description

 42 InterfaceEnhancementMediumMedium Notify user to check log should an error occur Closed
100%
Task Description

Have the Status ListViewItem within the Results listview tell the user to check the log should an error occur.

 43 Backend / CoreEnhancementMediumMedium Add a Delete Copy Mode to outright delete matched files Closed
100%
Task Description

no task description

 44 Backend / CoreEnhancementMediumMedium Store additional metrics data with AppFramework System  ...Closed
100%
Task Description

no task description

 46 Backend / CoreEnhancementMediumMedium Convert string concats to $"" format Closed
100%
Task Description

Convert string concats to $”” format, remove un-required namespace prefixes, etc.

In general, improve code.

 47 InterfaceEnhancementMediumMedium Add keyboard shortcuts to each window and document them Closed
100%
Task Description

no task description

Showing tasks 1 - 50 of 181 Page 1 of 41 - 2 - 3 - 4 -

Available keyboard shortcuts

Tasklist

Task Details

Task Editing