{"id":20350259,"url":"https://github.com/vector-man/objectivepaths","last_synced_at":"2026-04-29T10:06:53.211Z","repository":{"id":174670872,"uuid":"652575724","full_name":"vector-man/ObjectivePaths","owner":"vector-man","description":"ObjectivePaths is a wrapper for .NET filesystem operations, treating every filesystem item as an object.","archived":false,"fork":false,"pushed_at":"2023-06-15T15:31:10.000Z","size":71,"stargazers_count":2,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-04T16:36:13.643Z","etag":null,"topics":["abstraction","async-await","csharp","directories","directory","dotnet-core","dotnet-framework","dotnetstandard-2-0","file","files","filesystem-library","linq","paths"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vector-man.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2023-06-12T10:59:09.000Z","updated_at":"2024-05-16T15:01:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"e749412c-e5c0-4326-854e-3a2c471e0791","html_url":"https://github.com/vector-man/ObjectivePaths","commit_stats":null,"previous_names":["vector-man/objectivepaths"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vector-man/ObjectivePaths","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vector-man%2FObjectivePaths","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vector-man%2FObjectivePaths/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vector-man%2FObjectivePaths/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vector-man%2FObjectivePaths/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vector-man","download_url":"https://codeload.github.com/vector-man/ObjectivePaths/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vector-man%2FObjectivePaths/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259553129,"owners_count":22875610,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["abstraction","async-await","csharp","directories","directory","dotnet-core","dotnet-framework","dotnetstandard-2-0","file","files","filesystem-library","linq","paths"],"created_at":"2024-11-14T22:29:34.943Z","updated_at":"2026-04-29T10:06:48.192Z","avatar_url":"https://github.com/vector-man.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ObjectivePaths\nObjectivePaths for .NET is a library for filesystem operations. ObjectivePaths intends to make dealing with the filesystem easier, by treating each directory and file as an object. \n\nBecause of its design, custom filesystems can be plugged in to further enhance the library.\nView Demo project to see an example. \n\n## Examples:\n    // First, create a FileSystemService.\n    var fileSystemService = new LocalFileSystemService(new FileSystem());\n    \n    // Chaining:\n    // Get a file called \"C.txt\" in sub directory \"A\\B\" of \"C:\\Users\\\":\n    var directory = fileSystemService.GetDirectory(\"C:\\Users\\\");\n    var fileTwoLevelsDown = directory.GetDirectory(\"A\").GetDirectry(\"B\").GetFile(\"C.txt\");\n    \n    // LINQ Querying:\n    var bigFilesInDirectory = directory.GetFiles().Where(x=\u003e x.Length \u003e 10737418240);\n    \n    // File Copying:\n    var newFile = directory.GetFile(\"newNonExistingFile.txt\");\n    await fileTwoLevelsDown.CopyToAsync(newFile, overwrite: false, CancellationToken.None);\n    \n# License \nObjectivePaths is dual-licensed. It is free to use in open-source projects that are compatible with the license\nAGPL. For closed source projects, a  commercial license must be obtained from the Author, Michael D. Corbett. Due to the nature of dual-licensing, all contributions to to\nthe official project's repositories must be released under the MIT License:  (https://opensource.org/license/mit/). See LICENSE file for complete terms.\n\nContributors to this project are welcome to add their attribution information to the project under the Contributors section below:\n\n# Contributors \n\u003cadd your credit here\u003e\n    \n# ObjectivePaths Copyright \nCopyright (c) 2023 Michael D. Corbett\n    \nEmail: michael@mdcorbett.com \nGithub: @vector-man.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvector-man%2Fobjectivepaths","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvector-man%2Fobjectivepaths","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvector-man%2Fobjectivepaths/lists"}