I've been using GamePipe to move over steam games from my failing HDD to a new SSD and it's been working perfectly, except for a few games where some of the files are totally missing/corrupt because the disk is almost dead.
In these cases, the call to sourceStream.BeginRead(...) in the TransferFiles of the TransferManager class will throw an uncaught System.IO.IOException with the message Data error (cyclic redundancy check), which crashes the program.
I think a good solution would be for GamePipe to skip copying a file if it encounters an IOException, and then inform the user that they should verify the game through Steam.
In my local build of GamePipe I have solved this by wrapping the call to sourceStream.BeginRead(...) in a try/catch, however there is probably a more elegant solution.
I've been using GamePipe to move over steam games from my failing HDD to a new SSD and it's been working perfectly, except for a few games where some of the files are totally missing/corrupt because the disk is almost dead.
In these cases, the call to
sourceStream.BeginRead(...)
in theTransferFiles
of theTransferManager
class will throw an uncaughtSystem.IO.IOException
with the messageData error (cyclic redundancy check)
, which crashes the program.I think a good solution would be for GamePipe to skip copying a file if it encounters an
IOException
, and then inform the user that they should verify the game through Steam.In my local build of GamePipe I have solved this by wrapping the call to
sourceStream.BeginRead(...)
in atry/catch
, however there is probably a more elegant solution.