www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Handling external file workflows in D =?UTF-8?B?4oCU?= best approach

reply Alisha Winson <alishawinson2812 gmail.com> writes:
Hi all,

I’ve been experimenting with D for a small tool that processes 
and organizes media files (mostly short video clips and related 
metadata). The goal is to build a simple pipeline that scans 
directories, groups assets, and prepares them for downstream use. 
The basic flow is:

Read files from a structured directory (clips, images, metadata 
from [free video editor]( https://cepcutapk.com/) )
Perform some lightweight processing (naming, grouping, timestamp 
alignment)
Output a cleaned/organized set of assets for later use

The issue I’m running into is consistency across runs. Even when 
the input set doesn’t change, I occasionally see:

Slight differences in file ordering
Inconsistent timestamp handling depending on source
Edge cases where files are skipped or processed in a different 
sequence

This becomes noticeable when those assets are later used in tools 
like CapCut, where ordering and timing really matter for 
maintaining a predictable timeline. What I’m trying to figure out:

What’s the most reliable way in D to enforce deterministic file 
ordering (especially across platforms)?
Are there recommended patterns for handling timestamps 
consistently (filesystem vs metadata)?
Any best practices for building repeatable file-processing 
pipelines in D?

I’m currently using standard library modules (std.file, std.path, 
etc.), but I’m open to restructuring things if there’s a more 
idiomatic or robust approach.

Would appreciate any insights or pointers.

Thanks!
Apr 26
next sibling parent "Richard (Rikki) Andrew Cattermole" <richard cattermole.co.nz> writes:
On 27/04/2026 5:55 AM, Alisha Winson wrote:
 Would appreciate any insights or pointers.
 
 Thanks!
Off the top of my head, take a look at your data structures. A lot of data structures including AA's do not guarantee order and that could change per execution. It may also come from the file system with an unpredictable order as well so it would best to do a sort in a dynamic array if you want determinism.
Apr 26
prev sibling parent Mindy (0xEAB) <desisma heidel.beer> writes:
On Sunday, 26 April 2026 at 17:55:56 UTC, Alisha Winson wrote:
 free video editor
Cloudflare serves me a *phishing warning* when I try to access that page. I can’t blame them… Given the typo in the domain: “cepcut” (While the actual app name presented on that page is “capcut”.)
Apr 26