The Best thing will be to avoid a script In IE Select File -> Import & Export in the dialog that appear,select export favourites,select Favourites source folder ( select the topmost level, to select all).
This creates a html file of your favourites and copy this file as your bookmarks.html in mozilla Phil wrote: > I've been working on moving from Win2k to Linux and learning Perl > at the same time, so I thought I'd kill two birds with one stone and > write a Perl program to convert my IE bookmarks to Mozilla format. > The meat of the code is at the end - comments and suggestions are > more than welcome. > > At any rate, the code works and I have my bookmarks in Mozilla. > However, I'm not completely happy with it. The output is too > closely tied to the input. I'd like to rewrite it so that the > output type could be specified - html, Mozilla, Galeon, etc. > I'm not sure where to start, though. I had thought of reading in > the favorites and storing it in a tree-type data structure, but > wasn't sure exactly how to do this or how to write a routine > to walk the tree. Any ideas or pointers to resources? > > -Phil > > code follows: > > open(OUTFILE,">$outfile") || > die "Couldn't open $outfile for writing: $!"; > > print_header(\*OUTFILE,$rootdir); > > # Walk the directory tree and print the links > print_favs(\*OUTFILE,$rootdir); > > print_footer(\*OUTFILE); > > # recursive function to walk the directory tree underneath > # the directory passed in as a parameter. First the directory > # is opened, then a list of the files/folders is read into > # an array, and then the array is split into a list of files and > # a list of directories. html links are output for the files > # and the function is called again for each of the directories. > # Stopping condition is when a directory is reached that has only > # files, no sub-directories. > sub print_favs { > my $fh = $_[0]; # output file handle > my $dir = $_[1]; # current directory > my (@itemlist, @filelist, @dirlist); > > opendir(CURDIR, $dir) || die "Couldn't open $dir: $!\n"; > @itemlist = readdir(CURDIR); > chdir($dir) || die "Couldn't chdir to $dir: $!\n"; > > if ($dir ne $rootdir) { > print $fh "<dt><h3 id=\"NC:BookmarksRoot\#$foldernum\"\>$dir</h3>\n"; > print $fh "<dl><p>\n"; > } > $foldernum++; > > foreach (@itemlist) { > # print $fh "Item: $_\n"; > # Only process non-symbolic links > if (!(-l $_)) { > if ((-d $_) && ($_ !~ /\.\.?/)) { > @dirlist = (@dirlist, $_); > } > elsif ((-f $_) && ($_ =~ /\.url$/i)) { > @filelist = (@filelist, $_); > } > } > } > foreach (sort @filelist) { > print $fh "<dt>".getlink($_)."\n"; > } > foreach (sort @dirlist) { > print_favs($fh,$_,$foldernum); > } > print $fh "</dl><p>\n"; > chdir(".."); > } > > # takes the name of a windows internet shortcut file (from 'Favorites') > # opens the file and parses out the url it refers to. The function > # returns an html link with the url as the href and the name of > # the file (without the .url file extension) as the label > sub getlink { > my ($file, $line, $url, $name, $link); > $file = $_[0]; > open(URLFILE,$file) || die "Can't open $file: $!"; > while (defined($line=<URLFILE>) && ($line !~ /^URL=/)) { > } > if (defined($line)) { > chomp $line; > $url = substr($line,4); > $url =~ s/\cM//; > #print "URL: $url\n"; > $name = $file; > $name =~ s/.+\///; > $name =~ s/\.url//; > #print "Name: $name\n"; > $link = "<a href=\"".$url."\">$name</a>"; > close(URLFILE); > return $link; > } > else { > return ""; > } > } > > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]