Commit Graph

56 Commits

Author SHA1 Message Date
Rafał Harabień
35d03daae9 Support no_std without alloc 2018-05-10 15:00:59 +02:00
Rafał Harabień
11b2a3b956 Basic no_std support 2018-05-10 01:00:24 +02:00
Rafał Harabień
e9dec65318 Fix warnings in Rust 1.25 2018-05-09 15:34:00 +02:00
Rafał Harabień
cecc35033a Add write example. 2017-11-08 20:40:36 +01:00
Rafał Harabień
5c0ad0ce18 More code refactoring. 2017-11-08 19:59:03 +01:00
Rafał Harabień
681ee56cb3 Keep only BPB in FileSystem struct instead of entire BootRecord. 2017-11-08 19:41:05 +01:00
Rafał Harabień
4366b1836d Add more comments in code. 2017-11-08 16:47:12 +01:00
Rafał Harabień
3f581835db Code refactoring - no functional changes. 2017-11-08 16:03:08 +01:00
Rafał Harabień
3dc524759f WIP dir_entry module? 2017-11-08 14:09:20 +01:00
Rafał Harabień
c4e6d59492 Add set_created and set_accessed public functions in File.
Small code refactoring included.
2017-11-08 01:23:00 +01:00
Rafał Harabień
b38ea78f3e Add automatic update of timestamps (created, accessed, modified).
Works only if chrono feature is enabled (default).
2017-11-08 00:18:31 +01:00
Rafał Harabień
cdde3ca468 When generating short name replace invalid characters with '?'. 2017-11-08 00:07:06 +01:00
Rafał Harabień
1576c4d697 Add file name validation. 2017-11-07 23:17:52 +01:00
Rafał Harabień
288da370b3 Ignore high 16 bits of cluster number in FAT12/16 dir entry. 2017-11-07 22:52:56 +01:00
Rafał Harabień
4613196733 Catch only NotFound error in create_file and create_dir. 2017-11-07 01:06:52 +01:00
Rafał Harabień
21bd2a0e8d Zero new directory clusters after allocation. 2017-10-27 15:03:54 +02:00
Rafał
9ec23f1234 Add create_dir function. (#5) 2017-10-27 14:12:53 +02:00
Rafał
529d717e30 Add .editorconfig file and fix whitespaces in existing files. (#4) 2017-10-25 17:20:27 +02:00
Rafał Harabień
9d3780f859 Update README and add more doc comments. 2017-10-21 16:25:04 +02:00
Rafał Harabień
2a61b0d175 Small code improvements. 2017-10-21 15:51:19 +02:00
Rafał
df98ca8779 Create file functionality (#3)
* Support removing files and directories.

* Add create_file functionality.
2017-10-21 15:35:26 +02:00
Rafał Harabień
ba5329edad Support removing files and directories. 2017-10-20 16:18:17 +02:00
Rafał Harabień
e2374c08cc Fix seek for directory backed file. 2017-10-15 15:56:01 +02:00
Rafał Harabień
da76625759 Replace commented out logging by log crate usage. 2017-10-15 00:55:19 +02:00
Rafał Harabień
ef96f90b0d Add checking for LFN sequence corruption. 2017-10-14 15:24:03 +02:00
Rafał Harabień
0c6e9aec5b Fix multiple corner cases and simplify code. 2017-10-10 16:05:19 +02:00
Rafał Harabień
d8eba51b88 Alloc and free clusters for file data. 2017-10-09 21:14:28 +02:00
Rafał Harabień
f32f1c7279 Basic write support for files.
No cluster management yet.
Also BufStream is broken when writing.
2017-10-09 14:59:52 +02:00
Rafał Harabień
a974a61cb8 Fix dir entries pointing to root directory.
Fixes 'ls dir/..'.
2017-10-07 16:31:42 +02:00
Rafał Harabień
f850c76a1b Dont panic on unknown file attributes. 2017-10-07 16:25:53 +02:00
Rafał Harabień
120c9b035c Rename DirReader to DirRawStream. 2017-10-07 15:00:27 +02:00
Rafał Harabień
a1a2ffc2af Remove unneeded Fat prefix for most structures. 2017-10-07 14:56:50 +02:00
Rafał Harabień
beb463ba3f Fix possible panics if cluster chain ends before EOF. 2017-10-07 02:37:29 +02:00
Rafał Harabień
057eef07bb Fix possible deadlock if reading dir entry fails. 2017-10-07 02:16:34 +02:00
Rafał Harabień
b604b19bde Make chrono crate dependency optional. 2017-10-06 16:42:29 +02:00
Rafał Harabień
a7ca474a2f Add FatDir::iter() method returning dir entries iterator.
FatDir is no longer iterator. Change allows to iterate over directory and still be able to use it.
2017-10-06 16:07:11 +02:00
Rafał Harabień
bfa4984ae3 Use lossy conversion for UTF-8/16 strings instead of panicking. 2017-10-06 15:51:01 +02:00
Rafał Harabień
bc835d59b5 Don't use boxed buffer in FAT cluster reading code.
I assume gived Read object is capable of basic buffering and caching.
2017-10-04 13:56:44 +02:00
Rafał Harabień
f9f192c35e Add FAT table iterator. 2017-10-01 21:31:44 +02:00
Rafał Harabień
d88850624a Remove FatDir::list() method.
Vec can be created by using Iterator trait.
2017-10-01 18:45:58 +02:00
Rafał Harabień
4feeb3eead Use references instead of Rc for shared state. 2017-09-27 14:05:58 +02:00
Rafał Harabień
840290f754 Add LFN support and rename some functions. 2017-09-24 22:12:38 +02:00
Rafał Harabień
c6ba07848e Rename some functions based on std::fs module. 2017-09-24 14:34:07 +02:00
Rafał Harabień
6b6759802a Refactoring. 2017-09-24 03:08:00 +02:00
Rafał Harabień
894c2d34f3 Implement Iterator for FatDir. 2017-09-24 02:24:42 +02:00
Rafał Harabień
daa51e3540 Implement Seek trait for File and rewind method in Dir. 2017-09-24 02:10:59 +02:00
Rafał Harabień
8d974a6ee4 Add path traversal functions. 2017-09-24 00:05:43 +02:00
Rafał Harabień
e44d7fc6c2 Fix reading FAT32 root dir. 2017-09-23 21:53:32 +02:00
Rafał Harabień
c65d26bd2b Ignore LFN and fix handling of extension in filename.
Fixes fat12 and fat16 tests. Fat32 still doesnt work.
2017-09-23 21:29:11 +02:00
Rafał Harabień
b535b460f9 Implement reading files beyond cluster (untested). 2017-09-23 20:16:32 +02:00