{"id":23910921,"url":"https://github.com/fuzionix/vscode-file-tree","last_synced_at":"2026-02-14T11:15:24.760Z","repository":{"id":254870216,"uuid":"847737582","full_name":"fuzionix/vscode-file-tree","owner":"fuzionix","description":"A VSCode extension that generating directory structure for the current project by copy and paste.","archived":false,"fork":false,"pushed_at":"2025-03-29T07:26:42.000Z","size":2702,"stargazers_count":10,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-11T12:52:38.846Z","etag":null,"topics":["ascii","directory","file-tree","generator","vscode","vscode-extension"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/fuzionix.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null}},"created_at":"2024-08-26T13:00:45.000Z","updated_at":"2025-03-29T07:24:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"6b6197a6-89de-4396-bc93-47c7cdca6069","html_url":"https://github.com/fuzionix/vscode-file-tree","commit_stats":null,"previous_names":["fuzionix/vscode-file-tree"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/fuzionix/vscode-file-tree","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuzionix%2Fvscode-file-tree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuzionix%2Fvscode-file-tree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuzionix%2Fvscode-file-tree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuzionix%2Fvscode-file-tree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fuzionix","download_url":"https://codeload.github.com/fuzionix/vscode-file-tree/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuzionix%2Fvscode-file-tree/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260126452,"owners_count":22962650,"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":["ascii","directory","file-tree","generator","vscode","vscode-extension"],"created_at":"2025-01-05T07:29:18.521Z","updated_at":"2026-02-14T11:15:24.754Z","avatar_url":"https://github.com/fuzionix.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"media/FileTreeLogo.png\" alt=\"File Tree Extractor Logo\" width=\"90\" /\u003e\n\u003c/p\u003e\n\n---\n\n\u003ch1 align=\"center\"\u003e\nFile Tree Extractor\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://marketplace.visualstudio.com/items?itemName=Fuzionix.file-tree-extractor\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/VS%20Code-File%20Tree%20Extractor-3799fb?style=flat-square\u0026labelColor=1f1f1f\" alt=\"VS Code Extension\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://open-vsx.org/extension/Fuzionix/file-tree-extractor\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/OpenVSX-File%20Tree%20Extractor-6537fb?style=flat-square\u0026labelColor=1f1f1f\" alt=\"Open VSX\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/fuzionix/vscode-file-tree/releases\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/v/release/fuzionix/vscode-file-tree?style=flat-square\u0026color=fb8237\u0026labelColor=1f1f1f\" alt=\"Latest Release\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/fuzionix/vscode-file-tree\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/fuzionix/vscode-file-tree?style=flat-square\u0026color=fff\u0026labelColor=1f1f1f\" alt=\"GitHub Stars\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/fuzionix/vscode-file-tree/blob/main/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-MIT-green?style=flat-square\u0026color=d4fb37\u0026labelColor=1f1f1f\" alt=\"MIT License\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/fuzionix/vscode-file-tree/issues\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/issues/fuzionix/vscode-file-tree?style=flat-square\u0026color=fb5437\u0026labelColor=1f1f1f\" alt=\"Issues\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\nGenerate a directory structure with a simple copy and paste.\n\u003c/p\u003e\n\n\u003c/br\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/fuzionix/vscode-file-tree/refs/heads/main/media/demo.gif\" alt=\"File Tree Extractor Gif Demo\" width=\"840\" /\u003e\n\u003c/p\u003e\n\n## Features\n\n- 1️⃣ **Extract from Any Directory**: Support extracting file tree from the root or any subdirectory.\n- 2️⃣ **File Filtering**: Automatically filter files based on your project's `.gitignore` or custom ignore rules.\n- 3️⃣ **Highly Customizable**: Numerous configuration options to tailor the output.\n- 4️⃣ **Multiple Output Formats**: Generate tree structure in ASCII or JSON format.\n- 5️⃣ **File Size Information**: Optionally include file sizes in the output.\n- 6️⃣ **Depth Control**: Set a maximum depth for the generated tree structure.\n\n## Usage\n\n1. Right-click on a folder in the VS Code file explorer\n2. Select \"Copy File Tree\" or \"Copy File Tree From This Directory\"\n3. The file tree will be copied to your clipboard\n4. Paste the tree wherever you need it\n\n\u003e Alternatively, use the keyboard shortcut `Ctrl`+`Alt`+`C` to copy the file tree of the entire project.\n\n```\nroot/\n├── .env\n├── .gitignore\n├── asset/\n│   ├── icon/\n│   │   └── icon.png\n│   ├── logo.svg\n│   └── logo_text.svg\n├── dist/\n│   ├── index.d.ts\n│   ├── main.esm.js\n│   ├── main.js\n│   ├── main.min.js\n│   ├── main.min.js.map\n│   └── main.umd.js\n├── file_tree.txt\n├── package-lock.json\n├── package.json\n├── README.md\n├── rollup.config.js\n└── src/\n    ├── config.js\n    ├── error.js\n    ├── index.js\n    ├── render.js\n    ├── util.js\n    └── validate.js\n```\n\n\n\n## Configuration\n\nYou can customize the extension's behavior through VS Code settings.\n\nTo access these settings, go to `File` \u003e `Preferences` \u003e `Settings` and search for `\"File Tree Extractor\"`.\n\n\u003c/br\u003e\n\n### `fileTreeExtractor.ignoredItems`\n\n**Description:**\nThis setting allows you to specify a list of files and folders that should be ignored when generating the file tree. It is useful if you want to exclude certain files or folders from the generated file tree, such as temporary or cached files, or other directories that are not part of your project's main structure.\n\n**Default Value:**\n`[\".git\", \"node_modules\"]`\n\n**`settings.json`**\n```json\n\"fileTreeExtractor.ignoredItems\": [\".git\", \"node_modules\", \"dist\", \"**/src\"]\n```\n\n```\nroot/\n├── .env\n├── .gitignore\n├── asset/\n│   ├── icon/\n│   │   └── icon.png\n│   ├── logo.svg\n│   └── logo_text.svg\n├── package-lock.json\n├── package.json\n├── README.md\n└── rollup.config.js\n```\n\n\u003c/br\u003e\n\n### `fileTreeExtractor.ignoredBy`\n\n**Description:**\nSpecifies the method to ignore files and folders when generating the file tree structure.\n\n**Options:**\n`\"gitignore\"` | `\"ignoredItems\"` | `\"both\"`  \n**Default Value:**\n`\"ignoredItems\"`\n\n**`settings.json`**\n```json\n\"fileTreeExtractor.ignoredBy\": \"ignoredItems\"\n```\n\n- `\"gitignore\"`: The extension will use the `.gitignore` file to determine which files and folders to ignore.\n- `\"ignoredItems\"`: The extension will use `\"fileTreeExtractor.ignoredItems\"` specified in the extension settings.\n- `\"both\"`: The extension will use both `\"ignoredItems\"` and `\"gitignore\"` method.\n\n\u003c/br\u003e\n\n### `fileTreeExtractor.sortOrder` 🆕\n\n**Description:**\nSpecifies how files and directories should be sorted in the tree structure.\n\n**Options:**\n`\"type\"` | `\"alphabetical\"`  \n**Default Value:**\n`\"type\"`\n\n**`settings.json`**\n```json\n\"fileTreeExtractor.sortOrder\": \"type\"\n```\n\n```\n### alphabetical ###\nroot/\n├── .env\n├── .gitignore\n├── asset/\n│   ├── icon/\n│   │   └── icon.png\n│   ├── logo.svg\n│   └── logo_text.svg\n├── package-lock.json\n├── package.json\n├── README.md\n└── rollup.config.js\n\n---------------------\n\n### type ###\nroot/\n├── asset/\n│   ├── icon/\n│   │   └── icon.png\n│   ├── logo.svg\n│   └── logo_text.svg\n├── .env\n├── .gitignore\n├── package-lock.json\n├── package.json\n├── README.md\n└── rollup.config.js\n```\n\n- `\"type\"`: Directories are sorted first, followed by files, with alphabetical sorting within each group.\n- `\"alphabetical\"`: Items are sorted alphabetically, regardless of whether they are files or directories.\n\n\u003c/br\u003e\n\n### `fileTreeExtractor.indent`\n\n**Description:**\nThe number of spaces to use for indenting each level in the generated file tree.\n\n**Default Value:**\n`1`\n\n**`settings.json`**\n```json\n\"fileTreeExtractor.indent\": 4\n```\n\n```\nroot/\n├──── .env\n├──── .gitignore\n├──── asset/\n│     ├──── icon/\n│     │     └──── icon.png\n│     ├──── logo.svg\n│     └──── logo_text.svg\n├──── package-lock.json\n├──── package.json\n├──── README.md\n└──── rollup.config.js\n```\n\n\u003c/br\u003e\n\n### `fileTreeExtractor.useFileIcons`\n\n**Description:**\nUse emoji icons to visually distinguish between different item types in the tree structure.\n\n**Options:**\n`\"true\"` | `\"false\"`  \n**Default Value:**\n`\"false\"`\n\n**`settings.json`**\n```json\n\"fileTreeExtractor.useFileIcons\": true\n```\n\n```\n📦 root/\n├─ 📂 asset/\n│  ├─ 📂 icon/\n│  │  └─ 📄 icon.png\n│  ├─ 📄 logo.svg\n│  └─ 📄 logo_text.svg\n├─ 📄 .env\n├─ 📄 .gitignore\n├─ 📄 package-lock.json\n├─ 📄 package.json\n├─ 📄 README.md\n└─ 📄 rollup.config.js\n```\n\n\u003c/br\u003e\n\n### `fileTreeExtractor.showFileSize`\n\n**Description:**\nInclude file sizes in the generated tree.\n\n**Options:**\n`\"true\"` | `\"false\"`  \n**Default Value:**\n`\"false\"`\n\n**`settings.json`**\n```json\n\"fileTreeExtractor.showFileSize\": true\n```\n\n```\nroot/\n├── .env (0 Bytes)\n├── .gitignore (135 Bytes)\n├── asset/\n│   ├── icon/\n│   │   └── icon.png (1.36 MB)\n│   ├── logo.svg (677 Bytes)\n│   └── logo_text.svg (1.71 KB)\n├── package-lock.json (217.22 KB)\n├── package.json (1.27 KB)\n├── README.md (0 Bytes)\n└── rollup.config.js (1.27 KB)\n```\n\n\u003c/br\u003e\n\n### `fileTreeExtractor.maxDepth`\n\n**Description:**\nSets the maximum depth of the generated file tree structure. Using a value of `-1` will generate the tree with unlimited depth.\n\n\n**Default Value:**\n`-1`\n\n**`settings.json`**\n```json\n\"fileTreeExtractor.maxDepth\": 3\n```\n\n```\nroot/\n├── .env\n├── .gitignore\n├── asset/\n│   ├── icon/\n│   ├── logo.svg\n│   └── logo_text.svg\n├── package-lock.json\n├── package.json\n├── README.md\n└── rollup.config.js\n```\n\n\u003c/br\u003e\n\n### `fileTreeExtractor.outputFormat`\n\n**Description:**\nThe format of the output tree structure.\n\n**Options:**\n`\"ascii\"` | `\"json\"` | `\"yaml\"` | `\"xml\"`  \n**Default Value:**\n`\"ascii\"`\n\n**`settings.json`**\n```json\n\"fileTreeExtractor.outputFormat\": \"json\"\n```\n\n```\n{\n  \"name\": \"root\",\n  \"type\": \"directory\",\n  \"children\": [\n    {\n      \"name\": \"asset\",\n      \"type\": \"directory\",\n      \"children\": [\n        {\n          \"name\": \"icon\",\n          \"type\": \"directory\",\n          \"children\": [\n            {\n              \"name\": \"icon.png\",\n              \"type\": \"file\",\n              \"size\": \"104.36 KB\"\n            }\n          ]\n        },\n        {\n          \"name\": \"logo.svg\",\n          \"type\": \"file\",\n          \"size\": \"677 Bytes\"\n        },\n      ]\n    },\n    {\n      \"name\": \"package.json\",\n      \"type\": \"file\",\n      \"size\": \"1.27 KB\"\n    },\n  ]\n}\n```\n\n\u003c/br\u003e\n\n### `fileTreeExtractor.directoryOnly`\n\n**Description:**\nShow only directories in the tree structure, excluding all files from the output.\n\n**Default Value:**\n`false`\n\n**`settings.json`**\n```json\n\"fileTreeExtractor.directoryOnly\": true\n```\n\n```\nmenuy/\n├── asset/\n│   └── icon/\n├── dist/\n└── src/\n```\n\n\u003c/br\u003e\n\n### `fileTreeExtractor.showHiddenFiles`\n\n**Description:**\nShow hidden files in the tree output.\n\n**Default Value:**\n`true`\n\n\u003e Notice: The option only works for Linux and Mac OS. \n\n\u003c/br\u003e\n\n## Commands\n\n- `File Tree Extractor: Copy File Tree`\n- `File Tree Extractor: Copy File Tree From This Directory`\n- `File Tree Extractor: Report an Issue`\n\n\n## Feedback \u0026 Contributions\n\nWe welcome your feedback and contributions! Please report any issues or suggestions through:\n- The \"Report an Issue\" command in VS Code\n- Our [GitHub repository](https://github.com/fuzionix/vscode-file-tree/issues)\n\n## License\n\nThis extension is licensed under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuzionix%2Fvscode-file-tree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffuzionix%2Fvscode-file-tree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuzionix%2Fvscode-file-tree/lists"}