Bartłomiej Dach
e57d7d1205
Fix MemoryStreamArchiveReader.GetStream()
failing in some cases
...
`MemoryStreamArchiveReader` introduced in
0657b55196
would previously use
`MemoryStream.GetBuffer()` to retrieve the underlying byte buffer with
stream data. However, this is not generally the method you would want,
for two reasons:
1. It can fail if the stream wasn't created in the way that supports it.
2. As per
https://learn.microsoft.com/en-us/dotnet/api/system.io.memorystream.getbuffer?view=net-7.0#system-io-memorystream-getbuffer ,
it will return the _raw_ contents of the buffer, including
potentially unused bytes.
To fix, use `MemoryStream.ToArray()` instead, which avoids both
pitfalls. Notably, `ToArray()` always returns the full contents of the
buffer, regardless of `Position`, as documented in:
https://learn.microsoft.com/en-us/dotnet/api/system.io.memorystream.toarray?view=net-7.0#system-io-memorystream-toarray
2023-09-18 11:50:36 +02:00
Dean Herbert
541cd972e1
Rename ArchiveReader
implementations to read better
2023-09-14 13:36:07 +09:00
Dean Herbert
0657b55196
Avoid MemoryStream.ToArray
overhead in LegacyByteArrayReader
2023-09-14 13:33:25 +09:00
Dean Herbert
5e0b89a1a8
Rename GetPath
to GetFullPath
to better match expectations
2023-08-18 17:56:43 +09:00
Krzysztof Gutkowski
59abb59ee8
Set correct date added value when importing stable beatmapsets
2023-08-17 00:49:48 +02:00
Dean Herbert
d39ef48b71
Return null
intead of FileNotFoundException
on missing file in ZipArchiveReader
2023-08-03 09:01:11 +09:00
Dean Herbert
0ab0c52ad5
Automated pass
2023-06-24 01:00:03 +09:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
Dean Herbert
82a1ba1d46
Use pooled memory for memory copies performed by ZipArchiveReader
2022-05-30 20:22:26 +09:00
Dean Herbert
908c31c687
Update stream read operations to use new helper methods
2022-02-11 16:02:25 +09:00
Dean Herbert
670a30b64b
Remove usage of .Result
in ArchiveReader
2021-12-31 01:52:01 +09:00
Bartłomiej Dach
1040590844
Add cancellation support to game-side IResourceStore
s
2021-12-23 10:33:17 +01:00
Dean Herbert
9fc4bb7055
Fix incorrect xmldoc
2021-11-12 16:17:46 +09:00
Dean Herbert
b1cd01ceb8
Apply ConfigureAwait changes to game side
2021-03-08 14:36:35 +09:00
Bartłomiej Dach
89bf7b1bd6
Resolve CA1835 inspection
...
"Change the `ReadAsync` method call to use the
`Stream.ReadAsync(Memory<byte>, CancellationToken)` overload"
2020-11-01 18:51:39 +01:00
Dean Herbert
022465f546
Add encoding and import support
2020-03-24 14:51:52 +09:00
Dean Herbert
68ebe98fde
Remove unused GetUnderlyingStream method
2020-03-24 14:08:25 +09:00
Dean Herbert
35be8f9dfb
Share framework file-exclusion function
2019-10-30 19:34:17 +09:00
Bartłomiej Dach
4b84564f47
Switch casing comparison mode to ordinal
...
Switch from InvariantCultureIgnoreCase to OrdinalIgnoreCase when
checking file paths in archives for substrings indicating the file can
be ignored for performance gains.
Co-Authored-By: Dan Balasescu <smoogipoo@smgi.me>
2019-10-11 09:24:41 +02:00
Bartłomiej Dach
57bfa18359
Filter out OS-generated files from archives
...
Add a filename ignore list to ZipArchiveReader to filter out superfluous
OS-generated files from archives during the import process. In addition
to decreasing the size of files imported this allows imports of some
incorrectly-constructed archives. An example is the case of having
a __MACOSX directory next to a single directory with the actual files -
filtering out the former at ZipArchiveReader allows the fallback added
in #6170 to work.
2019-10-10 23:54:23 +02:00
Dean Herbert
80d65f9a3b
Update resource stores with GetAvailableResources
2019-05-31 14:33:18 +09:00
Dean Herbert
8617aaa2a7
Update licence header (and remove year)
2019-01-24 17:43:03 +09:00
smoogipoo
a783fdb501
Add LegacyFileArchiveReader
...
Treats files as "archives" for import.
2018-11-28 16:13:16 +09:00
smoogipoo
0982508d26
Rename to LegacyDirectoryArchiveReader
2018-11-28 15:13:27 +09:00
smoogipoo
21d5322899
Update with async changes
2018-08-27 17:05:58 +09:00
Dean Herbert
c756a89daf
Standardise path
2018-06-06 20:55:42 +09:00
Dean Herbert
3b03a25ea5
Fix beatmaps with subfolders importing incorrectly on windows
...
Closes #2718 .
2018-06-05 11:36:44 +09:00
Dean Herbert
44a9aa529a
Test CI run with new changes
2018-04-22 03:51:17 +09:00
Dean Herbert
32a74f95a5
Normalize all the line endings
2018-04-13 18:26:38 +09:00
smoogipoo
c29f7a4333
Merge remote-tracking branch 'origin/master' into netstandard
2018-03-24 14:49:46 +09:00
Dean Herbert
d340509b1d
Move ArchiveReaders to a more global namespace
...
Also moves delete and action logic to a shared implementation
2018-02-15 14:22:39 +09:00