The previous logic for building the path to dds.dart.snapshot would result
in the Windows drive letter being dropped from the path:
\path\to\dart-sdk\bin\dds.dart.snapshot
This works most of the time since a leading slash is treated as a reference
to the current drive, which often contains the Dart SDK. However, if the SDK
is on a different drive than the current (e.g., in a container with two drives),
the VM will fail to find the snapshot.
This change uses the File(...) APIs from dart:io to build the path rather than
trying to use the Uri class to manually hack together a path.
TEST=N/A, not reproducible without a second Windows drive
Bug: https://github.com/grpc/grpc-dart/issues/697
Change-Id: I71d00b07a98508a780f5aab76417da4aa530f3c4
Cherry-pick: https://dart-review.googlesource.com/c/sdk/+/360920
Cherry-pick-request: https://github.com/dart-lang/sdk/issues/55386
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/361400
Reviewed-by: Siva Annamalai <asiva@google.com>