Ejemplo n.º 1
0
        private static void FTPFilesThreadProc()
        {
            while (bFTPingFiles)
            {
                while (FTPFilePackets.Count > 0)
                {
                    FTPFilePacket Packet = null;
                    try
                    {
                        Packet = FTPFilePackets.Dequeue();

                        DetailLog(" ... FTPing: " + Packet.SourceFile.FullName, ConsoleColor.DarkYellow);
                        EnsureRemoteFolderExists(Path.GetDirectoryName(Packet.DestinationFile).Replace("\\", "/"));
                        UploadFile(Packet.SourceFile, Packet.DestinationFile);
                    }
                    catch (Exception Ex)
                    {
                        Warning("Failed to FTP: " + Packet.SourceFile.FullName + " (" + Ex.Message + ") -- trying again!");
                        Packet.SourceFile.Refresh();

                        FTPFilePackets.Enqueue(Packet);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="TableOfContents"></param>
        public static void FTPFiles( TOC TableOfContents )
        {
            if( Options.FTPSite.Length > 0 && Options.FTPUser.Length > 0 )
            {
                int TotalFilesUploaded = TableOfContents.Entries.Count;
                TotalBytesUploaded = 0;

                bCopyingFiles = true;
                Thread FTPFilesThread = new Thread( FTPFilesThreadProc );
                FTPFilesThread.Start();

                foreach( TOCEntry Entry in TableOfContents.Entries )
                {
                    // Handle file copies
                    FileInfo SourceFile = Entry.Info;
                    string DestFile = Path.Combine( Options.FTPFolder, Entry.Name ).Replace( "\\", "/" );

                    // Create copy packet and add to queue
                    FTPFilePacket Packet = new FTPFilePacket( SourceFile, DestFile );
                    FTPFilePackets.Enqueue( Packet );
                }

                while( FTPFilePackets.Count > 0 )
                {
                    if( !Options.bLog )
                    {
                        ProgressLog( " ... waiting for " + FTPFilePackets.Count + " FTPs (" + TotalBytesUploaded + " uploaded)   ", ConsoleColor.Cyan );
                    }
                    Thread.Sleep( 100 );
                }

                if( !Options.bLog )
                {
                    ProgressLog( " ... waiting for " + FTPFilePackets.Count + " FTPs (" + TotalBytesUploaded + " bytes uploaded)   ", ConsoleColor.Cyan );
                }

                bFTPingFiles = false;

                Log( "", ConsoleColor.Green );
                Log( "Completed FTPing " + TotalFilesUploaded + " files, totaling " + TotalBytesUploaded + " bytes", ConsoleColor.Green );
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="TableOfContents"></param>
        public static void FTPFiles(TOC TableOfContents)
        {
            if (Options.FTPSite.Length > 0 && Options.FTPUser.Length > 0)
            {
                int TotalFilesUploaded = TableOfContents.Entries.Count;
                TotalBytesUploaded = 0;

                bCopyingFiles = true;
                Thread FTPFilesThread = new Thread(FTPFilesThreadProc);
                FTPFilesThread.Start();

                foreach (TOCEntry Entry in TableOfContents.Entries)
                {
                    // Handle file copies
                    FileInfo SourceFile = Entry.Info;
                    string   DestFile   = Path.Combine(Options.FTPFolder, Entry.Name).Replace("\\", "/");

                    // Create copy packet and add to queue
                    FTPFilePacket Packet = new FTPFilePacket(SourceFile, DestFile);
                    FTPFilePackets.Enqueue(Packet);
                }

                while (FTPFilePackets.Count > 0)
                {
                    if (!Options.bLog)
                    {
                        ProgressLog(" ... waiting for " + FTPFilePackets.Count + " FTPs (" + TotalBytesUploaded + " uploaded)   ", ConsoleColor.Cyan);
                    }
                    Thread.Sleep(100);
                }

                if (!Options.bLog)
                {
                    ProgressLog(" ... waiting for " + FTPFilePackets.Count + " FTPs (" + TotalBytesUploaded + " bytes uploaded)   ", ConsoleColor.Cyan);
                }

                bFTPingFiles = false;

                Log("", ConsoleColor.Green);
                Log("Completed FTPing " + TotalFilesUploaded + " files, totaling " + TotalBytesUploaded + " bytes", ConsoleColor.Green);
            }
        }