//LnkToHtml - start:17.10.98
// - takes a directory and stores ALL url's (in subdirectories too) in a HTML doc...

import java.io.*;

class Lnk {
}

/**
  * LnkToHtml - class for gathering
  * the links from IE .url files into a html file
  */

public class LnkToHtml {
	static PrintStream ErrOut;

	static String extract_url(File ThisFile){try{
		String url = new String();
		String in = new String();
		
    // now turn the FileInputStream into a DataInputStream    try {
      DataInputStream myInput = new DataInputStream(new FileInputStream(ThisFile));
	  do{
		  in = myInput.readLine(); 
		  ErrOut.println("   >"+in+"<"+in.substring(0,3));

	  }while(!(in.substring(0,4).equalsIgnoreCase("URL=") ));
				url = in.substring(4); ErrOut.println("url="+url);

	  return url;
		
	}catch(Exception e){
		ErrOut.println("ExtractUrl failed:"+e); }
		return "";
	
	}


	static void start_process(String Path, PrintStream POut, String HTMLPrepend){
		File MyFile = new File(Path);
		String Files[]; 
		Files = MyFile.list();
		System.out.println(Path +" : "+Files.length);
		int ListMax=1024, NumDir=0;
		File Dir[] = new File[ListMax];

		POut.println(HTMLPrepend+"<UL>"); //Lets start

		for(int i=0;i<Files.length;i++){
			File ThisFile = new File(MyFile.getAbsolutePath()+File.separator+Files[i]);
			if(ThisFile.isDirectory()){
				if(NumDir<ListMax){
					Dir[NumDir++]=ThisFile;
				}else{
					ErrOut.println("Out of list space...");
				}
			}else{
				if(ThisFile.isFile()){
					String temp = extract_url(ThisFile);
					String name = ThisFile.getName();
					int occur = name.lastIndexOf(".");
					String desc = name.substring(0, occur);
					String ext = name.substring(occur);
					if(temp.length()>0){ 
						POut.println(HTMLPrepend+"<LI><A HREF="+'"' + temp +'"'+ " TARGET="+'"'+"_TOP"+'"'+">"+desc+"</A></LI>");
						//ErrOut.println(extract_url(ThisFile));
					}
				}
			}
		}

		if(NumDir>0){
			for(int i=0;i<NumDir;i++){
				POut.println(HTMLPrepend+"<STRONG>"+Dir[i].getName()+"</STRONG>");
				
				start_process(Dir[i].getAbsolutePath(), POut, HTMLPrepend+" ");
			}
		}
		
		POut.println(HTMLPrepend+"</UL>");


	}


	public static void main( String args[]){
	try{ErrOut=System.out;
		FileOutputStream FOutPut = new FileOutputStream("D:"+File.separator+"TEMP"+File.separator+"List.html");
		PrintStream POutPut = new PrintStream(FOutPut);

		FOutPut = new FileOutputStream("D:"+File.separator+"TEMP"+File.separator+"List.log");
		ErrOut = new PrintStream(FOutPut);


		DataInputStream in = new DataInputStream(System.in);
		String Path = new String("C:"+File.separator+"Win95"+File.separator+"Favoritter");
		
		if(args.length>0){ Path = args[0]; }
		System.out.println("Path for .url's: "+Path);
		start_process(Path, POutPut," ");
		
		//Path = in.readLine();

	}catch(Exception e){ System.out.println("*...Oh dear, main catched a big, hairy "+e); }	
	}
}
