Skip to content

Instantly share code, notes, and snippets.

@decagondev
Created September 22, 2025 21:24
Show Gist options
  • Save decagondev/4c912b24fa7bd0b7668c87e28fb734bd to your computer and use it in GitHub Desktop.
Save decagondev/4c912b24fa7bd0b7668c87e28fb734bd to your computer and use it in GitHub Desktop.

FileSearch Application Recreation Tickets

  • Ticket 1: Implement CharToWString Helper Function
    • Create a utility to convert char* to std::wstring using MultiByteToWideChar. Test in main() with sample inputs.
  • Ticket 2: Implement StringToFileTime Helper Function
    • Create a utility to parse YYYY-MM-DD strings into FILETIME. Test valid/invalid dates in main().
  • Ticket 3: Implement ParseAttributes Helper Function
    • Create a utility to parse comma-separated attribute strings (e.g., "hidden,readonly") into a DWORD. Test in main().
  • Ticket 4: Implement Argument Parsing
    • Parse command-line arguments into SearchCriteria struct and startDir. Display parsed values in main(). Depends on Tickets 1-3.
  • Ticket 5: Implement Bare Minimum Directory Traversal and File Listing
    • Implement recursive directory traversal using a stack, listing all files (no filters). Integrate with startDir. Depends on Ticket 4.
  • Ticket 6: Add File Name Pattern Matching
    • Add name pattern filtering using PathMatchSpecW in MatchesCriteria. Test with /name argument. Depends on Ticket 5.
  • Ticket 7: Add File Size Range Filtering
    • Extend MatchesCriteria to filter by minSize/maxSize. Depends on Ticket 6.
  • Ticket 8: Add Date Range Filtering
    • Extend MatchesCriteria to filter by minDate/maxDate using CompareFileTime. Depends on Ticket 7.
  • Ticket 9: Add File Attributes Filtering
    • Extend MatchesCriteria to filter by attributes using ParseAttributes. Final integration to match provided code. Depends on Ticket 8.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment