I have just posted a beta version of SdFat that supports the SD.h API on github GitHub - greiman/SdFat-beta: Beta SdFat for test of new features.
You now should be able to use SdFat with programs written for SD.h by replacing the #include <SD.h> with these two lines:
#include <SdFat.h>
SdFat SD;
The new File class in SdFat supports all the SD.h File member functions plus the SdFile member functions.
SdFat also supports the SD.h style open for the File class.
File file;
file = SD.open("test.txt", FILE_WRITE);
if (!file) {
Serial.println("open error");
}
SdFat produces smaller faster programs than SD.h.
The SD.h ReadWrite.ino example in Arduino 1.06 uses 13,676 bytes of flash on an Uno.
With SdFat the ReadWrite.ino example uses 11,700 bytes of flash. Only the above change for the SD.h include is required.
The difference is smaller with the SD.h Datalogger.ino example. 14,756 for SD.h and 13,234 for SdFat.
For the SD.h listfiles.ino example, 14,696 for SD.h and 12,442 for SdFat.
I would appreciate any feedback on tests with other SD.h programs. I tested all the SD.h examples but suspect there will be problems with other programs.
I also suspect any problems will be easy to fix since SD.h is just a wrapper for a really old version of SdFat.