public void ScanDIR(String in,VraReader b)
{
long l=0x80000000L;
long E1=0,E2=0;

int BASE=(int)DataDir[4];
int POS=0;

String[] fix=new String[2];
fix[0]=in.substring(0,in.indexOf("$"));
fix[1]=in.substring((in.indexOf("$")+1),in.length());
in=fix[0];
POS=Integer.parseInt(fix[1],10);
fix=null;

System.out.println("Scan DIR = "+in+"");
System.out.println("Drectory Position IN RAM = "+(BASE+POS)+"");

Object[] Folder=new Object[6];
Folder[0]=b.ReadDWORD((BASE+POS));
Folder[1]=b.ReadDWORD((BASE+(POS+4)));
Folder[2]=b.ReadWORD((BASE+(POS+8)));
Folder[3]=b.ReadWORD((BASE+(POS+10)));
Folder[4]=b.ReadWORD((BASE+(POS+12)));
Folder[5]=b.ReadWORD((BASE+(POS+14)));
int Enterys=(((int)b.ReadWORD((BASE+(POS+12))))+((int)b.ReadWORD((BASE+(POS+14)))));

System.out.println("Drectory = Files/Folders = "+Enterys);POS+=16;

try{for(int i=0;i<Enterys;i++){E1=b.ReadDWORD((BASE+POS));E2=b.ReadDWORD((BASE+(POS+4)));POS+=8;

//****************************String Name****************************
if((E1-l)>0)
{
//Folder
if((E2-l)>0)
{String Name=b.ReadASCIIUND(((int)(BASE+(E1-l))));
Folders.add(in+Name+"/$"+(E2-l)+"");}

//File
else{String Name=b.ReadASCIIUND(((int)(BASE+(E1-l))));
Files.add(in+Name+".h#R"+E2+"");}
}

//******************************ID Name******************************
else
{
//Folder
if((E2-l)>0)
{Folders.add(in+E1+"/$"+(E2-l)+"");}

//File
else{Files.add(in+E1+".h#R"+E2+"");}
}
}
}catch(Exception e){System.out.println(e+"");}
}