You're working away, maybe copying a file or opening a program, and bam – a blue screen or a popup says STATUS_FILE_CORRUPT_ERROR (0xC0000102) with the message "The file or directory %hs is corrupt and unreadable." It usually hits after a sudden power loss, a force shutdown, or when your hard drive's starting to fail. I've seen it most often on older spinning drives, but SSDs can throw it too if they've got bad NAND cells.
What's actually causing this?
The error is Windows telling you that some part of the file system – either the Master File Table (MFT) or the file itself – has gone wrong. It could be a physical bad sector on the drive, a corrupted NTFS structure from an I/O error during writing, or a software bug that mangled the file's metadata. In short, the data on the disk doesn't match the checksum or structure Windows expects. Don't waste time blaming a virus – 9 times out of 10, it's a hardware issue or a dirty shutdown.
The fix – step by step
We'll start with the built-in tools and escalate to deeper scans. You'll need to boot into the Windows Recovery Environment (WinRE) if the system won't start, but if you can still log in, run everything from an elevated Command Prompt.
- Boot into Safe Mode or the Recovery Environment
If you can't get past the error, force a restart three times – power off when the spinning dots appear. On the third reboot, Windows will show a blue screen with "Choose an option." Click Troubleshoot > Advanced options > Command Prompt. If you can log in, just open Command Prompt as Administrator (right-click Start, choose Command Prompt Admin).
After you do this, you should see a black window with a cursor. That's what we need.
- Run chkdsk with repair flags
Type this command and press Enter:
chkdsk c: /f /r /xHere's what each flag does:
/ffixes file system errors,/rlocates bad sectors and recovers readable data,/xforces the volume to dismount first. If you're running this on your C: drive while Windows is loaded, it'll ask to schedule a scan on next boot – type Y and restart. The scan may take an hour on a large drive, so be patient.During the scan, you'll see stages: 1 through 5. Stage 3 checks the file system structure. If it finds corruption, it'll try to fix it. When it finishes, you'll see a report like "Windows has made corrections to the file system." If it reports no issues, move to the next step.
- Run System File Checker (SFC)
From the same Command Prompt (reboot first if you didn't already), run:
sfc /scannowThis checks all protected system files against a cached copy in
%SystemRoot%\WinSxS. It'll take 15-30 minutes. After it finishes, it'll say either "Windows Resource Protection did not find any integrity violations" or "Windows Resource Protection found corrupt files and successfully repaired them." If it finds violations but can't fix them, move to step 4.If you're in WinRE, use this instead (because the offline system image is different):
sfc /scannow /offbootdir=c:\ /offwindir=c:\windows - Run DISM to repair the system image
DISM fixes the store that SFC uses. Type:
DISM /Online /Cleanup-Image /RestoreHealthIf you're offline or in WinRE, use:
DISM /Image:C:\ /Cleanup-Image /RestoreHealth /Source:C:\Windows\WinSxSDISM connects to Windows Update to grab clean files. If you're offline, it'll use the local source. The scan takes 5-15 minutes. When it's done, it'll say "The restore operation completed successfully." Then run
sfc /scannowagain – it should now fix what DISM repaired. - Check disk health with CrystalDiskInfo or WMIC
The real fix is often replacing a failing drive. Download CrystalDiskInfo (free, portable version) and run it. Look for raw values of Reallocated Sectors Count (ID 05) and Current Pending Sector Count (ID C5). If either is non-zero, your drive is physically dying, and no software fix will make it reliable. Back up your data now and replace the drive.
If you can't install anything, use this command in Command Prompt:
wmic diskdrive get statusIf it returns "OK," the drive passed the basic SMART self-test, but that's not a deep check – it can still lie. The raw values are more honest.
What if it still fails?
If chkdsk, SFC, and DISM all report clean, but you still get the error on a specific file, that file is probably in a bad sector that chkdsk marked as unreadable. Try copying the file to a new location – if you get an I/O error, it's confirmed a hardware failure. The only safe move is to clone the drive with a tool like Macrium Reflect (free version) or ddrescue (if you're comfortable with Linux). If cloning fails at the bad sector, skip it – you've lost that file, but the rest of your data can be saved. Then replace the drive.
One more thing: if this is a system file (like ntfs.sys or winload.efi), you might need to do a repair install using a Windows USB. Boot from the media, choose "Repair your computer," then go to Troubleshoot > Advanced Options > System Restore. If that doesn't work, a clean install may be the only route – but that's a last resort after you've confirmed the drive is healthy.
Real-world example from my desk: A user kept getting 0xC0000102 on file
C:\Users\John\Documents\budget.xlsx. Chkdsk showed no errors, but CrystalDiskInfo reported 12 reallocated sectors. I cloned the drive to a new SSD, and the error never came back – the sector was physically bad, but the clone algorithm skipped it. The file was corrupt anyway, but he had a backup. Always keep backups.