https://github.com/dsoprea/go-exfat
exFAT reader implementation based on Microsoft specifications.
https://github.com/dsoprea/go-exfat
exfat filesystem go golang
Last synced: 4 months ago
JSON representation
exFAT reader implementation based on Microsoft specifications.
- Host: GitHub
- URL: https://github.com/dsoprea/go-exfat
- Owner: dsoprea
- License: mit
- Created: 2019-09-04T19:36:41.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-06-02T11:05:52.000Z (11 months ago)
- Last Synced: 2024-12-24T02:32:04.773Z (4 months ago)
- Topics: exfat, filesystem, go, golang
- Language: Go
- Homepage:
- Size: 467 KB
- Stars: 19
- Watchers: 3
- Forks: 3
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://godoc.org/github.com/dsoprea/go-exfat)
[](https://travis-ci.org/dsoprea/go-exfat)
[](https://coveralls.io/github/dsoprea/go-exfat?branch=master)
[](https://goreportcard.com/report/github.com/dsoprea/go-exfat)# Overview
This is a read-only exFAT implementation based on the Microsoft-published
specs ([exFAT file system specification](https://docs.microsoft.com/en-us/windows/win32/fileio/exfat-specification)).
The primary purpose of this project is to provide an unprivileged API to access
an exFAT filesystem from any platform. This project also provides several tools
that can be used to explore the filesystem and extract files from it.# Command-Line Tools
- *exfat_list_contents*: List all files with or without complete directory-entry
information.
- *exfat_extract_file*: Extract a single file to a file or STDOUT. May also be
used to print all clusters and sectors visited for the extraction.
- *exfat_print_boot_sector_header*: Dump filesystem parameters. Largely sourced
from the boot-sector header.# Notes
- All entry-types are parsed as per the requirements of the specification.
However:- Up-case tables, which support case insensitivity, are not read and therefore
not applied. As a result, all file-operations are case-sensitive (and the
villagers rejoiced).- Allocation bitmaps are not read, so it's not possible to know which clusters
are or are not used. This is not required for browsing the filesystem or
reading files.- Timestamps are accurate to one second.