{"id":15646387,"url":"https://github.com/fornever/truepath","last_synced_at":"2026-03-14T22:22:14.306Z","repository":{"id":140632456,"uuid":"483736841","full_name":"ForNeVeR/TruePath","owner":"ForNeVeR","description":"File path abstraction library for .NET.","archived":false,"fork":false,"pushed_at":"2026-03-07T00:20:04.000Z","size":277,"stargazers_count":99,"open_issues_count":15,"forks_count":14,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-03-07T06:29:37.754Z","etag":null,"topics":["dotnet","file-path"],"latest_commit_sha":null,"homepage":"https://fornever.github.io/TruePath/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ForNeVeR.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-04-20T16:46:29.000Z","updated_at":"2026-03-07T00:20:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"956c9572-549c-4526-9ccf-71fe9bb9fca8","html_url":"https://github.com/ForNeVeR/TruePath","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/ForNeVeR/TruePath","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ForNeVeR%2FTruePath","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ForNeVeR%2FTruePath/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ForNeVeR%2FTruePath/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ForNeVeR%2FTruePath/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ForNeVeR","download_url":"https://codeload.github.com/ForNeVeR/TruePath/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ForNeVeR%2FTruePath/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30334633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T12:41:07.687Z","status":"ssl_error","status_checked_at":"2026-03-10T12:41:06.728Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotnet","file-path"],"created_at":"2024-10-03T12:12:38.986Z","updated_at":"2026-03-14T22:22:14.301Z","avatar_url":"https://github.com/ForNeVeR.png","language":"C#","readme":"\u003c!--\nSPDX-FileCopyrightText: 2024-2025 Friedrich von Never \u003cfriedrich@fornever.me\u003e\n\nSPDX-License-Identifier: MIT\n--\u003e\n\nTruePath [![Status Ventis][status-ventis]][andivionian-status-classifier]\n========\nThis is a library containing a set of types to work with file system paths in .NET.\n\nMotivation\n----------\nHistorically, .NET has been lacking a good set of types to work with file system paths. The `System.IO.Path` class has a variety of methods that operate on path strings, but it doesn't provide any types to represent paths themselves. It's impossible to tell whether a method accepts an absolute path, a relative path, a file name, or something file-related at all, only looking at its signature: all these types are represented by plain strings. Also, comparing different paths is not straightforward.\n\nThis library aims to fill this gap by providing a set of types that represent paths in a strongly-typed way. Now, you can require a path in a method's parameters, and it is guaranteed that the passed path will be well-formed and will have certain properties.\n\nAlso, the methods in the library provide some qualities that are missing from the `System.IO.Path`: say, we aim to provide several ways of path normalization and comparison, the ones that will and will not perform disk IO to resolve paths on case-insensitive file systems.\n\nThe library is inspired by the path libraries used in other ecosystems: in particular, Java's [java.nio.file.Path][java.path] and [Kotlin's extensions][kotlin.path].\n\nRead more on [the documentation site][docs].\n\nIf you miss some feature or have questions, do not hesitate to [open an issue][issues] or [go to the discussions section][discussions].\n\nPackages\n--------\n| Name                  | NuGet Package                                                                                   | Documentation                              |\n|-----------------------|-------------------------------------------------------------------------------------------------|--------------------------------------------|\n| **TruePath**          | [![TruePath on nuget.org][nuget.badge.true-path]][nuget.true-path]                              | [API Reference][docs.true-path]            |\n| **TruePath.SystemIo** | [![TruePath.SystemIo on nuget.org][nuget.badge.true-path.system-io]][nuget.true-path.system-io] | [API Reference][docs.true-path.system-io]  |\n| **TruePath.TestableIO.System.IO** (third-party) | [![TruePath.TestableIO.System.IO on nuget.org][nuget.badge.true-path.testableio.system-io]][nuget.true-path.testableio.system-io] | [Documentation][github.true-path.testable-io] |\n\nTruePath provides two NuGet packages:\n- [**TruePath**][nuget.true-path] for the main path abstractions,\n- [**TruePath.SystemIo**][nuget.true-path.system-io] for the `System.IO` integration. \n \nA third-party package, [**TruePath.TestableIO.System.IO**][nuget.true-path.testableio.system-io], adds [TestableIO.System.IO.Abstractions][testable-io.system.io.abstractions] integration on top of TruePath.\n\nDocumentation\n-------------\n- [Project Documentation Site][docs]\n- [Changelog][docs.changelog]\n- [Contributor Guide][docs.contributing]\n- [Maintainer Guide][docs.maintaining]\n\nLicense\n-------\nThe project is distributed under the terms of [the MIT license][docs.license].\n\nThe license indication in the project's sources is compliant with the [REUSE specification v3.3][reuse.spec].\n\n[andivionian-status-classifier]: https://andivionian.fornever.me/v1/#status-ventis-\n[discussions]: https://github.com/ForNeVeR/TruePath/discussions\n[docs.changelog]: CHANGELOG.md\n[docs.contributing]: CONTRIBUTING.md\n[docs.license]: LICENSE.txt\n[docs.maintaining]: MAINTAINING.md\n[docs.true-path.system-io]: https://fornever.github.io/TruePath/api/TruePath.SystemIo.html\n[docs.true-path]: https://fornever.github.io/TruePath/api/TruePath.html\n[docs]: https://fornever.github.io/TruePath\n[github.true-path.testable-io]: https://github.com/jeppevammenkristensen/FileBasedApp.Toolkit/blob/main/Source/TruePath.TestableIO.System.IO/README.md\n[issues]: https://github.com/ForNeVeR/TruePath/issues\n[java.path]: https://docs.oracle.com/en%2Fjava%2Fjavase%2F21%2Fdocs%2Fapi%2F%2F/java.base/java/nio/file/Path.html\n[kotlin.path]: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.io.path/java.nio.file.-path/\n[nuget.badge.true-path.system-io]: https://img.shields.io/nuget/v/TruePath.SystemIo\n[nuget.badge.true-path.testableio.system-io]: https://img.shields.io/nuget/v/TruePath.TestableIO.System.IO\n[nuget.badge.true-path]: https://img.shields.io/nuget/v/TruePath\n[nuget.true-path.system-io]: https://www.nuget.org/packages/TruePath.SystemIo\n[nuget.true-path.testableio.system-io]: https://www.nuget.org/packages/TruePath.TestableIO.System.IO/\n[nuget.true-path]: https://www.nuget.org/packages/TruePath\n[reuse.spec]: https://reuse.software/spec-3.3/\n[status-ventis]: https://img.shields.io/badge/status-ventis-yellow.svg\n[testable-io.system.io.abstractions]: https://github.com/TestableIO/System.IO.Abstractions","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffornever%2Ftruepath","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffornever%2Ftruepath","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffornever%2Ftruepath/lists"}