To see if your hard drive is too full do this calculation, you should have at least 15% free space on your hard drive (if 100gb drive then should have 15gb free) this way windows can work more freely swapping and moving files with no issues.
Also if you want to verify if your hard drive is still healthy you should check what brand (WD, Seagate, Samsung ect) it is and download the bootable iso image of their utility cd and burn it on a cd then boot from it and verify if your drive is healthy.
First thing would be to verify your free space, once you have at least 15% free then verify the drive with the boot cd and if it passes the tests then you should do a Checkdisk whithin Windows and finally do a defrag using if possible use another defrag program rather the the built in one from windows (I suggest Auslogics DiskDefrag).