Live demos built with CanopyX
A file explorer over more than 100,000 nodes, a device inventory reporting grid and a static outline, all generated in C# with CanopyX.
File explorer
A share audit across 26 shares, written with SaveHtmlBundle into static files. Nothing here runs on a server: branches and search results are files read as you need them.
- Nodes
- 113,550
- Data files
- 393
- On disk
- 42.2 MB
- Largest file
- 469 KB
- Lazy branches
Expand a share, then one of its departments.
Each branch opens from one pack file in data/, read the first time you open it. The page never downloads the whole tree.
- Search shards
Type budget into Search files and folders and pick a hit.
Only the shards for the words you typed are read; the tree then opens every branch on the path to the hit.
- Filters
Turn on Only changed in the last 7 days.
Folders above a changed file stay visible, so the tree keeps its shape around the matches.
- Detail rows
Expand a file that has an arrow, then its History and a version.
The version's changes open as a before and after table inside the tree, under the file they belong to.
- Deep links
Select a row and look at the address bar of the full-screen page.
The hash carries the row's path. Opening that address expands straight to the row.
Device inventory
A reporting grid over 1,200 devices, written with ToHtmlPage: data and runtime in a single file you can attach to a ticket or open from disk.
- Records
- 1,200
- Grouped by
- Site
- Facets
- Site, OS, encryption
- Files
- 1 page
- Grouping
Collapse the Berlin group heading.
The heading keeps its count and its patch level summary; collapsed rows still count in selections and exports.
- Facets
Open the filter in the Site or Operating system header and tick a few values.
The value counts come from all 1,200 devices that match, not from the rows on screen.
- Aggregates
Read the totals row under the grid, then filter.
Average and lowest patch level follow the filtered query.
- Selection
Tick a few rows, then use Select all matching.
The status bar counts the selection. Select all matching captures the query instead of every record ID.
- CSV export
Open Export and choose Download CSV.
Pick filtered, selected or all records. The file follows the accepted query and the column order, not the visible rows.
- Saved views
Hide a column, then open Views and save the layout.
Named views keep columns, filters and sorting, and Reset view returns to the definition.
Static outline
A smaller file tree as a plain table with no script, for email, print and Word. It is the same view definition as an interactive tree.
- From
- File share report
- Subject
- Weekly changes on three shares
Here is this week's outline. The interactive report is attached.
| Name | Size | Modified | Owner | State |
|---|---|---|---|---|
| \\files\share-a3 changed (+54) | 1.7 GB | |||
| Finance | 383.2 MB | |||
| Budget | 150.9 MB | |||
| Łódź office 1.xlsx (+11) | 30.7 MB | 2026-09-14 17:55 UTC | dana.levi | OK |
| Contracts 2.docx | 43.8 MB | 2026-07-27 10:15 UTC | anna.kowalska | Large |
| Roadmap 3.pdf | 40.1 MB | 2026-09-04 13:43 UTC | erik.lund | Large |
| Budget 4.pptx | 34.1 MB | 2026-08-29 11:19 UTC | chen.wei | OK |
| Straße survey 5.csv | 2.2 MB | 2026-08-12 12:12 UTC | chen.wei | OK |
| Roadmap | 114.2 MB | |||
| Quarterly review 1.xlsx (+11) | 28.9 MB | 2026-08-10 22:37 UTC | erik.lund | OK |
| Αθήνα partners 2.docx | 8.4 MB | 2026-07-26 22:32 UTC | erik.lund | OK |
| Hiring 3.pdf | 8.3 MB | 2026-08-06 09:23 UTC | ben.okafor | OK |
| Москва office 4.pptx | 14.5 MB | 2026-08-17 11:52 UTC | anna.kowalska | OK |
| Roadmap 5.csv | 38.7 MB | 2026-08-01 15:21 UTC | dana.levi | Large |
| Campaign 6.txt | 15.5 MB | 2026-08-04 15:35 UTC | ben.okafor | OK |
| Contracts | 118.0 MB | |||
| Hiring 1.xlsx (+5) | 41.0 MB | 2026-08-03 21:52 UTC | chen.wei | Large |
| Москва office 2.docx | 52.1 KB | 2026-09-06 17:54 UTC | anna.kowalska | OK |
| Budget 3.pdf | 38.5 MB | 2026-08-08 16:05 UTC | dana.levi | Large |
| Hiring 4.pptx | 38.4 MB | 2026-07-05 07:58 UTC | chen.wei | Large |
| Engineering1 changed | 403.8 MB | |||
| Roadmap | 114.7 MB | |||
| Roadmap 1.xlsx (+11) | 13.7 MB | 2026-09-17 06:41 UTC | chen.wei | OK |
| Contracts 2.docx | 27.0 MB | 2026-08-06 21:39 UTC | erik.lund | OK |
| Roadmap 3.pdf | 16.3 MB | 2026-09-06 01:46 UTC | erik.lund | OK |
| Москва office 4.pptx | 23.6 MB | 2026-08-12 19:32 UTC | not collected | OK |
| Budget 5.csv | 34.2 MB | 2026-07-27 13:56 UTC | not collected | OK |
| Contracts | 73.6 MB | |||
| Αθήνα partners 1.xlsx (+7) | 6.0 MB | 2026-07-09 00:33 UTC | ben.okafor | Stale |
| Łódź office 2.docx | 31.9 MB | 2026-07-03 17:53 UTC | erik.lund | Stale |
| Straße survey 3.pdf | 35.7 MB | 2026-08-03 16:25 UTC | fatima.zahra | OK |
| Campaign1 changed | 215.5 MB | |||
| Campaign 1.xlsx (+9) | 21.1 MB | 2026-09-18 18:52 UTC | dana.levi | OK |
| İstanbul launch 2.docx | 29.3 MB | 2026-07-09 14:41 UTC | erik.lund | OK |
| Audit 3.pdf | 44.9 MB | 2026-07-12 03:59 UTC | ben.okafor | Large |
| Campaign 4.pptxchanged | 39.0 MB | 2026-09-23 22:25 UTC | ben.okafor | Large |
| Αθήνα partners 5.csv | 46.3 MB | 2026-08-24 15:49 UTC | anna.kowalska | Large |
| İstanbul launch 6.txt | 34.8 MB | 2026-09-01 08:28 UTC | erik.lund | OK |
| Legal1 changed (+35) | 498.4 MB | |||
| Contracts1 changed (+13) | 199.7 MB | |||
| Showing 40 of 540 rows. | ||||
- No script
Switch the site theme in the header.
The outline follows it through the page's --cx-* properties. In a mail client its literal colours apply.
- Row limits
Look for the counts after a cut branch.
MaxRows and MaxDepth cut the outline, and each cut branch shows how many rows it hides.
- Print
Print this page or save it as PDF.
The table is plain HTML with inline styles, so it prints and pastes into Word as it looks here.
var options = new CanopyStaticHtmlOptions {
MaxRows = 40, MaxDepth = 4, UseThemeVariables = true
};
string html = CanopyStaticHtml.Render(outline, options);Every demo on this page is generated by Website/tools/SiteDemos in the CanopyX repository with the public .NET API, then served as static files. Each one follows the theme switch in the header.