{"id":37020890,"url":"https://github.com/abarhub/vfs4j","last_synced_at":"2026-01-14T02:26:55.499Z","repository":{"id":36524389,"uuid":"225129174","full_name":"abarhub/vfs4j","owner":"abarhub","description":"Virtualisation du systeme de fichier","archived":false,"fork":false,"pushed_at":"2023-06-14T22:48:00.000Z","size":380,"stargazers_count":1,"open_issues_count":13,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-07T10:18:57.721Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abarhub.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.txt","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-12-01T08:27:34.000Z","updated_at":"2024-12-27T07:26:09.000Z","dependencies_parsed_at":"2022-08-28T07:50:51.860Z","dependency_job_id":null,"html_url":"https://github.com/abarhub/vfs4j","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/abarhub/vfs4j","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abarhub%2Fvfs4j","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abarhub%2Fvfs4j/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abarhub%2Fvfs4j/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abarhub%2Fvfs4j/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abarhub","download_url":"https://codeload.github.com/abarhub/vfs4j/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abarhub%2Fvfs4j/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408711,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2026-01-14T02:26:54.840Z","updated_at":"2026-01-14T02:26:55.492Z","avatar_url":"https://github.com/abarhub.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vfs4j\n\n[![Build Status](https://travis-ci.com/abarhub/vfs4j.svg?branch=master)](https://travis-ci.com/abarhub/vfs4j)\n[![codecov](https://codecov.io/gh/abarhub/vfs4j/branch/master/graph/badge.svg)](https://codecov.io/gh/abarhub/vfs4j)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.github.abarhub/vfs4j-core/badge.svg?style=plastic)](https://maven-badges.herokuapp.com/maven-central/io.github.abarhub/vfs4j-core)\n[![javadoc](https://javadoc.io/badge2/io.github.abarhub/vfs4j-core/javadoc.svg)](https://javadoc.io/doc/io.github.abarhub/vfs4j-core)\n[![Java CI](https://github.com/abarhub/vfs4j/actions/workflows/maven.yml/badge.svg?branch=master)](https://github.com/abarhub/vfs4j/actions/workflows/maven.yml)\n[![GitHub release](https://img.shields.io/github/v/release/abarhub/vfs4j)](https://github.com/abarhub/vfs4j/releases)\n[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html)\n\n# VFS4J\nC'est une librairie pour virtualiser le systeme de fichier.\n\nPour ajouter la dépendance, il faut ajouter dans le pom de maven :\n\n```xml\n\n\u003cdependency\u003e\n  \u003cgroupId\u003eio.github.abarhub\u003c/groupId\u003e\n  \u003cartifactId\u003evfs4j-core\u003c/artifactId\u003e\n  \u003cversion\u003e0.7.4\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nLa documentation de référence est [ici](./doc/doc_reference.md).\nIl y a d'autres exemples [ici](./doc/guide_utilisation.md).\nLa javadoc est [ici](https://javadoc.io/doc/io.github.abarhub/vfs4j-core)\n\n## Fonctionnalitées\n\n* Java 8 minimum. Fonctionne avec Java 11\n* Limitation des répertoires accéssibles par l'application\n* Le paramétrage est défini dans un fichier de configuration hors de l'application, ce qui permet de variabiliser l'acces au filesystem\n* mécanisme de plugin pour modifier les comportements\n  * Audit pour logger les opérations sur le filesystem. Possibilité de n'auditer qu'une partie des opérations en\n    fonction du type d'opération (lecture, écriture, copie, etc...) et/ou un filtre glob (**/*.jpg)\n  * Détection des fichiers non fermés\n* Dépendance avec SLF4J uniquement. Possibilité d'utiliser la librairie de log que l'on souhaite\n* Les répertoires configurés peuvent être soit un répertoire, soit le classpath, soit un répertoire temporaire, soit un\n  répertoire avec un filesystem déclaré, ce qui permet de pouvoir utiliser un zip ou un filesystem en mémoire par exemple.\n* possibilité de limiter en lecture l'accès aux répertoires\n\n## Guide d'utilisation\n\nPour la configuration, il faut créer dans le classpath le fichier suivant :\n\n```code\nvfs.paths.dir1.path=/var/local/dir\nvfs.paths.dir1.mode=STANDARD\nvfs.paths.dir2.mode=TEMPORARY\nvfs.paths.dir3.path=/var/local/dir2\nvfs.paths.dir3.readonly=true\n```\n\nEnsuite dans le code il faut faire :\n\n```java\nVFS4JFiles.createFile(new VFS4JPathName(\"dir1\",\"file01.txt\"));\nVFS4JFiles.createDirectories(new VFS4JPathName(\"dir2\",\"direcory1/dir2/dir3\"));\nVFS4JFiles.copy(new VFS4JPathName(\"dir1\",\"file01.txt\"),new PathName(\"dir2\",\"file01.txt\"));\n```\n\nIl y a d'autres exemples [ici](./doc/guide_utilisation.md).\nLa documentation de référence est [ici](./doc/doc_reference.md).\nIl y a des exemples d'utilisation dans le projet [vfs4jexample](https://github.com/abarhub/vfs4jexample).\n\n## Liens\n\n- [GitHub project](https://github.com/abarhub/vfs4j)\n- [Issue tracker: Report a defect or feature request](https://github.com/abarhub/vfs4j/issues/new)\n- [Guide d'utilisation](./doc/guide_utilisation.md)\n- [Documentation de référence](./doc/doc_reference.md)\n- [Javadoc](https://javadoc.io/doc/io.github.abarhub/vfs4j-core)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabarhub%2Fvfs4j","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabarhub%2Fvfs4j","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabarhub%2Fvfs4j/lists"}