Cleaning Up CFile

Incorporating the changes in PR #2596 
Can you please explain why this way of copying is correct? I see only 0 or 1 bytes are written but the content of `strs` might be different to that, right?