Thanks to Nikola Bozovic, we can provide you with almost full file structure of JCD file format. This format of file is saved with FlashGet version 1.73 build 128.
JCD Format Structure
LEGEND
UBYTE - unsigned byte (8 bits)
UINT - unsigned int (32 bits)
ArrayOf(TYPE) - array of element TYPE
OleString - Packed string element 1 byte (8 bits) as N, and N bytes (characters) following
enum - bitfield (32 bits)
USHORT - unsigned short (16 bits)
CTime - Date Time packed as mfc CTime (1/1/1970)
File structure
byte size |
data type |
name |
comment |
---|---|---|---|
1 |
UBYTE |
Signature |
0x48 |
4 |
UINT |
RecordsCount |
total records in db |
0+N |
ArrayOf(RCATEGORY or RFILE) |
Records |
array of records |
RCATEGORY structure
byte size |
data type |
name |
comment |
---|---|---|---|
4 |
UINT |
type |
defines record type (1, 5) |
4 |
UINT |
ID |
record unique identifier |
4 |
UINT |
_u01 |
* unknown |
4 |
UINT |
_u02 |
* unknown |
4 |
UINT |
_u03 |
* unknown |
4 |
UINT |
_u04 |
* unknown |
4 |
UINT |
_u05 |
* unknown |
1+N |
OleString |
Name |
Category name |
1+N |
OleString |
Path |
Category folder path |
RFILE structure
byte size |
data type |
name |
comment |
---|---|---|---|
4 |
UINT |
type |
defines record type (2) |
4 |
UINT |
ID |
record unique identifier |
4 |
UINT |
_u03 |
* unknown (6) |
4 |
UINT |
_u04 |
* unknown (2) |
4 |
UINT |
IDDirCurrent |
records current category |
4 |
UINT |
_u06 |
* unknown (0) |
4 |
UINT |
_u07 |
* unknown (79) |
1+N |
OleString |
Url |
file download url |
4 |
enum |
Flags |
bit field flags [see *1] |
1+N |
OleString |
ServerUsername |
server login username |
1+N |
OleString |
ServerPassword |
server login password |
4 |
UINT |
IDDirTarget |
target category for complete download |
1+N |
OleString |
Filename |
filename for download |
4 |
UINT |
NumOfCnn |
Number of connections |
1+N |
OleString |
Folder |
folder for download |
1+N |
OleString |
Comment |
comment |
4 |
UINT |
_u11 |
* unknown (1 / 65537) |
4 |
enum |
State |
1 - paused, 2 - started, 4 - complete, 8 - error |
4 |
INT |
FileSize |
file size from server, -1 for unknown file size |
1+N |
OleString? |
_s01 |
* unknown (0) maybe byte ? |
4 |
CTime |
FileDate |
file date taken from server |
4 |
CTime |
CreateTime |
file record create time |
4 |
CTime |
CompleteTime |
file date complete time, last write date and time |
1+N |
OleString |
Referer |
Url referer |
4 |
UINT |
TotalTime |
total seconds that download take |
2 |
USHORT |
_us18 |
* unknown (0) |
4 |
UINT |
AltUrlCount |
alternate urls count |
0+N |
ArrayOf(ALTURL) |
AltUrls |
alternate urls array (can be zero size) |
4 |
UINT |
JetCount |
download jets count |
0+N |
ArrayOf(JETITEM) |
JetItems |
jet items array (can be zero size) |
4 |
UINT |
_u21 |
* unknown (0) |
ALTURL structure
byte size |
data type |
name |
comment |
---|---|---|---|
1+N |
OleString |
Url |
altername url |
4 |
UINT |
_u01 |
* unknown (0) |
JETITEM structure
byte size |
data type |
name |
comment |
---|---|---|---|
4 |
UINT |
start |
jet completed download file address starts |
4 |
UINT |
end |
jet completed download file address ends |
// Bit field [*1]
[Flags]
public enum JCDFileFlags : uint
{
bit1 = 1, /* incoplete download */
bit2 = 2, /* incoplete download */
LoginToServer = 4,
bit4 = 8,
bit5 = 0x10,
bit6 = 0x20,
bit7 = 0x40,
bit8 = 0x80,
bit9 = 0x100, /* incoplete download */
bit10 = 0x200, /* incoplete download */
bit11 = 0x400,
FtpDownloadSubDirs = 0x800,
CreateSubDirsLocally = 0x1000,
CreateCategory = 0x2000,
bit15 = 0x4000,
bit16 = 0x8000,
bit17 = 0x10000,
bit18 = 0x20000,
bit19 = 0x40000,
bit20 = 0x80000,
bit21 = 0x100000,
bit22 = 0x200000,
bit23 = 0x400000,
bit24 = 0x800000,
bit25 = 0x1000000,
bit26 = 0x2000000,
bit27 = 0x4000000,
bit28 = 0x8000000,
bit29 = 0x10000000,
bit30 = 0x20000000,
bit31 = 0x40000000,
bit32 = 0x80000000
}