| re: Windows Service and FileSystemWatcher Problems
Hi Bonnett,
Why don;t you debug it?
Just use Debug/ Processes and attach it to the correct process, then put a
breakpoint in the first line of the method and see what's going on.
A warning, depending of the events that you are capturing you may get two
events risen , so you have to look into this, with the breakpoint it will
be clear though.
Cheers,
--
Ignacio Machin,
ignacio.machin AT dot.state.fl.us
Florida Department Of Transportation
"Bonnett" <Pete@Pete-B.co.uk> wrote in message
news:2i8k5dFkiltsU1@uni-berlin.de...[color=blue]
> I have made a simple console application that creates a webpage from my
> playlist, then uploads it to my webhost. I decided to convert it to a
> windows service and use the FileSystemWatcher to monitor the playlist[/color]
file,[color=blue]
> this is where i became stuck. I know the service detects changes to the
> playlist as when running the Change event of FileSystemWatcher, I add an
> item to the event log. I've tried making the service without including the
> upload line (this is an external call to pscp.exe) but the html file isn't
> made so im thinking there is a problem elsewhere in the program. Here is[/color]
the[color=blue]
> code for the FileSystemWatcher changed event as I think this is where the
> error is:
>
> private void FileMonitor_Changed(object sender,
> System.IO.FileSystemEventArgs e)
> {
> eventLog1.WriteEntry("It Should Upload it here :|");//This entry[/color]
appears[color=blue]
> in the event log
> System.Threading.Thread.Sleep(5000); //I tried adding a 5 second pause
> to ensure the playlist file is saved
> StreamReader input = new StreamReader(@"c:\my music\playlist.pls");
> StreamWriter output = new StreamWriter("playlist.html"); //This file[/color]
is[color=blue]
> never created
> String inputString;
> int numSongs = 0;
> int totalLength=0;
> inputString = input.ReadLine();
> ArrayList songList = new ArrayList();
> while((inputString != null)||!(inputString.StartsWith("Number")))
> {
> inputString = input.ReadLine();
> if(inputString.StartsWith("Number"))
> {
> break;
> }
> numSongs++;
> inputString = input.ReadLine();
> int equalPos = inputString.IndexOf("=")+1;
> String title = inputString.Substring(equalPos);
> equalPos = inputString.IndexOf("=")+2;
> int length = int.Parse(input.ReadLine().Substring(equalPos));
> totalLength += length;
> int lengthSec = length%60;
> int lengthMin = (length-lengthSec)/60;
> String zeroed = "";
> if(lengthSec<10)
> {
> zeroed = "0";
> }
> String song = numSongs+". "+title+"
> ("+lengthMin+":"+zeroed+lengthSec+")";
> songList.Add(song);
> }
> int avLen = totalLength/numSongs;
> int avLenSec = avLen%60;
> int avLenMin = (avLen-avLenSec)/60;
> String avLength = avLenMin+":"+avLenSec;
> String time = "";
> if(totalLength>=3600)
> {
> int numSecs = totalLength%60;
> int numMins = ((totalLength-numSecs)%3600)/60;
> int numHours = ((totalLength-numSecs)-(numMins*60))/3600;
> time = numHours+"</font><font color=\"#409FFF\" face=\"Arial\">
> hours </font><font face=\"Arial\"[/color]
color=\"#FFBF00\">"+numMins+"</font><font[color=blue]
> color=\"#409FFF\" face=\"Arial\"> minutes </font><font face=\"Arial\"
> color=\"#FFBF00\">"+numSecs+"</font><font color=\"#409FFF\"[/color]
face=\"Arial\">[color=blue]
> seconds </font><BR>";
> }
> else
> {
> int numSecs = totalLength%60;
> int numMins = ((totalLength-numSecs)%3600)/60;
> time = numMins+"</font><font color=\"#409FFF\" face=\"Arial\">
> minutes </font><font face=\"Arial\"
> color=\"#FFBF00\">"+numSecs+"</font><font color=\"#409FFF\"[/color]
face=\"Arial\">[color=blue]
> seconds </font><BR>";
> }
> //The webpage is designed to look just like the Winamp Generated
> Playlist
> output.WriteLine("<html><head><link rel=\"stylesheet\"[/color]
href=\"null\">");[color=blue]
> output.WriteLine("<style TYPE=\"text/css\">\n<!--BODY { background:
> #000040; }");
> output.WriteLine(".para1 { margin-top: -42px; margin-left: 145px;
> margin-right: 10px; font-family: \"font2, Arial\"; font-size: 30px;
> line-height: 35px; text-align: left; color: #E1E1E1; }");
> output.WriteLine(".para2 { margin-top: 15px; margin-left: 15px;
> margin-right: 50px; font-family: \"font1, Arial Black\"; font-size: 50px;
> line-height: 40px; text-align: left; color: #004080; }--></style>");
> output.WriteLine("<title>Winamp Generated PlayList</title></head><body
> BGCOLOR=\"#000080\" topmargin=\"0\" leftmargin=\"0\" text=\"#FFFFFF\">");
> output.WriteLine("<div align=\"center\"><div CLASS=\"para2\"
> align=\"center\"><p>WINAMP</p></div><div CLASS=\"para1\"[/color]
align=\"center\">")[color=blue]
> ;
> output.WriteLine("<p>playlist</p></div></div><hr align=\"left\"
> width=\"90%\" noshade size=\"1\" color=\"#FFBF00\"><div[/color]
align=\"right\">");[color=blue]
> output.WriteLine("<table border=\"0\" cellspacing=\"0\"
> cellpadding=\"0\" width=\"98%\"><tr><td><small><small><font face=\"Arial\"
> color=\"#FFBF00\">");
> output.WriteLine(numSongs+"</font><font color=\"#409FFF\"
> face=\"Arial\"> tracks in playlist, average track length: </font><font
> face=\"Arial\"[/color]
color=\"#FFBF00\">"+avLength+"</font></small></small><br>");[color=blue]
> output.WriteLine("<small><small><font color=\"#409FFF\"
> face=\"Arial\">Playlist length: </font><font face=\"Arial\"
> color=\"#FFBF00\">"+time);
> output.WriteLine("</td></tr></table></div><blockquote><p><font
> color=\"#FFBF00\" face=\"Arial\"><big>Playlist[/color]
files:</big></font><ul><font[color=blue]
> face=\"Arial\" color=\"#FFFFFF\"><small>");
> for(int i=0; i<songList.Count;i++)
> {
> output.WriteLine(songList[i].ToString()+"<BR>");
> }
> output.WriteLine("</font></ul></blockquote><hr align=\"left\"
> width=\"90%\" noshade size=\"1\" color=\"#FFBF00\"></body></html>");
> input.Close();
> output.Close();
> System.Diagnostics.Process.Start("pscp.exe", " -pw password
> playlist.html user@host:/file/location");
> }
>
> Any Help you can give would be appreciated.
>
>[/color] |