Skip to content

sansernonline/FileManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

CSVComparison

A Windows tool for validating consistency across CSV manifest files in a software build/packaging workflow — it finds components that are missing or mismatched between related manifest files.

.NET Language UI


Overview

CSVComparison is a WinForms application that helps release/packaging teams verify that the components declared across multiple CSV manifest files are complete and consistent. It reports any entry that exists in one file but is missing from another, helping catch manifest errors before a build or release.

Results are shown as a log in the form:

<entries remaining in left file>   |   <entries remaining in right file>

An empty result means both files match perfectly.

Features (3 tabs)

Tab 1 — CSV ↔ CSV

Pick any two CSV files and compare them directly on the first column. Useful for ad-hoc checks.

Tab 2 — Project ↔ Internal folder

Select a project (from the list) and automatically compare multiple file pairs. Each check can be toggled with a checkbox:

Check Files compared Notes
Includes ComponentIncludes.csv*.includes.csv
Restrictions *.includes.csv*.restrictions.csv inspects the ComponentRestrictedRestrictionType column
Patches *.includes.csv*.patches.csv inspects the ComponentVersionUsedPatchDate column
Prereqs (Build) *.prereqs.build.windows/linux.csv ↔ internal
Prereqs (Install) *.prereqs.install.windows/linux.csv ↔ internal

Tab 3 — ComponentIncludes ↔ tools folder

Compares the component names listed in components/ComponentIncludes.csv against the actual subdirectory names under each project's tools/ directory.

Architecture

  • Program.cs — entry point; launches MainForm
  • MainForm.cs — main UI with 3 tabs; comparison work runs on a separate Thread and appends results via Invoke (keeps the UI responsive)
  • Classes/CSVHelper.cs — all comparison logic (reads CSVs, computes the set difference on the configured columns)
  • Classes/ReadWriteCsv.csCsvFileReader / CsvRow for reading and writing CSV
  • Classes/FileHelper.cs — file-handling utilities

Dependencies (in libs/)

  • SVNProjectList.dll — populates the project list shown in the ListBox (ListBoxHelper)
  • Excel.dll — file-reading helper library

Project structure

CSVComparison/
├── CSVComparison.sln
└── CSVComparison/
    ├── Program.cs
    ├── MainForm.cs / MainForm.Designer.cs
    ├── Classes/
    │   ├── CSVHelper.cs        # core comparison logic
    │   ├── ReadWriteCsv.cs     # CSV reader/writer
    │   └── FileHelper.cs
    ├── libs/                   # SVNProjectList.dll, Excel.dll
    ├── example/example.rar     # sample data for testing
    └── App.config

Build & Run

  1. Open CSVComparison.sln in Visual Studio (targets .NET Framework 4.5.2)
  2. Make sure the references to libs/SVNProjectList.dll and libs/Excel.dll resolve correctly
  3. Build and run — the app loads the project list into the ListBox automatically
  4. (Optional) Extract example/example.rar to use as sample test data

Notes

This tool is built around a specific manifest layout (components/, internal/, tools/, and the ComponentIncludes / includes / restrictions / patches / prereqs files), so it is best suited to that internal project convention. To use it with a different structure, adjust the file names and column indices in CSVHelper.cs.

About

Winforms app to copy files

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages