青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 124,  comments - 29,  trackbacks - 0
foreach 只讀遍歷,遍歷誰(shuí)就不能刪除誰(shuí),否則大小沒(méi)法控制
posted @ 2008-10-16 18:34 天書 閱讀(720) | 評(píng)論 (1)編輯 收藏
if (folderBrowserDlg.ShowDialog(this) == DialogResult.OK)
            {
                textLocalPath.Text = folderBrowserDlg.SelectedPath;
            }
posted @ 2008-10-13 16:53 天書 閱讀(360) | 評(píng)論 (0)編輯 收藏

  C#多線程同步(轉(zhuǎn)) C#多線程同步(轉(zhuǎn))

     考慮一種我們經(jīng)常遇到的情況:有一些全局變量和共享的類變量,我們需要從不同的線程來(lái)更新它們,可以通過(guò)使用System.Threading.Interlocked類完成這樣的任務(wù),它提供了原子的,非模塊化的整數(shù)更新操作。

  還有你可以使用System.Threading.Monitor類鎖定對(duì)象的方法的一段代碼,使其暫時(shí)不能被別的線程訪問(wèn)。

  System.Threading.WaitHandle類的實(shí)例可以用來(lái)封裝等待對(duì)共享資源的獨(dú)占訪問(wèn)權(quán)的操作系統(tǒng)特定的對(duì)象。尤其對(duì)于非受管代碼的互操作問(wèn)題。

  System.Threading.Mutex用于對(duì)多個(gè)復(fù)雜的線程同步的問(wèn)題,它也允許單線程的訪問(wèn)。

  像ManualResetEvent和AutoResetEvent這樣的同步事件類支持一個(gè)類通知其他事件的線程。

  不討論線程的同步問(wèn)題,等于對(duì)多線程編程知之甚少,但是我們要十分謹(jǐn)慎的使用多線程的同步。在使用線程同步時(shí),我們事先就要要能夠正確的確定是那個(gè)對(duì)象和方法有可能造成死鎖(死鎖就是所有的線程都停止了相應(yīng),都在等者對(duì)方釋放資源)。還有贓數(shù)據(jù)的問(wèn)題(指的是同一時(shí)間多個(gè)線程對(duì)數(shù)據(jù)作了操作而造成的不一致),這個(gè)不容易理解,這么說(shuō)吧,有X和Y兩個(gè)線程,線程X從文件讀取數(shù)據(jù)并且寫數(shù)據(jù)到數(shù)據(jù)結(jié)構(gòu),線程Y從這個(gè)數(shù)據(jù)結(jié)構(gòu)讀數(shù)據(jù)并將數(shù)據(jù)送到其他的計(jì)算機(jī)。假設(shè)在Y讀數(shù)據(jù)的同時(shí),X寫入數(shù)據(jù),那么顯然Y讀取的數(shù)據(jù)與實(shí)際存儲(chǔ)的數(shù)據(jù)是不一致的。這種情況顯然是我們應(yīng)該避免發(fā)生的。少量的線程將使得剛才的問(wèn)題發(fā)生的幾率要少的多,對(duì)共享資源的訪問(wèn)也更好的同步。

  .NET Framework的CLR提供了三種方法來(lái)完成對(duì)共享資源 ,諸如全局變量域,特定的代碼段,靜態(tài)的和實(shí)例化的方法和域。

  (1) 代碼域同步:使用Monitor類可以同步靜態(tài)/實(shí)例化的方法的全部代碼或者部分代碼段。不支持靜態(tài)域的同步。在實(shí)例化的方法中,this指針用于同步;而在靜態(tài)的方法中,類用于同步,這在后面會(huì)講到。

  (2) 手工同步:使用不同的同步類(諸如WaitHandle, Mutex, ReaderWriterLock, ManualResetEvent, AutoResetEvent 和Interlocked等)創(chuàng)建自己的同步機(jī)制。這種同步方式要求你自己手動(dòng)的為不同的域和方法同步,這種同步方式也可以用于進(jìn)程間的同步和對(duì)共享資源的等待而造成的死鎖解除。

  (3) 上下文同步:使用SynchronizationAttribute為ContextBoundObject對(duì)象創(chuàng)建簡(jiǎn)單的,自動(dòng)的同步。這種同步方式僅用于實(shí)例化的方法和域的同步。所有在同一個(gè)上下文域的對(duì)象共享同一個(gè)鎖。
Monitor Class

  在給定的時(shí)間和指定的代碼段只能被一個(gè)線程訪問(wèn),Monitor 類非常適合于這種情況的線程同步。這個(gè)類中的方法都是靜態(tài)的,所以不需要實(shí)例化這個(gè)類。下面一些靜態(tài)的方法提供了一種機(jī)制用來(lái)同步對(duì)象的訪問(wèn)從而避免死鎖和維護(hù)數(shù)據(jù)的一致性。

  Monitor.Enter 方法:在指定對(duì)象上獲取排他鎖。

  Monitor.TryEnter 方法:試圖獲取指定對(duì)象的排他鎖。

  Monitor.Exit 方法:釋放指定對(duì)象上的排他鎖。

  Monitor.Wait 方法:釋放對(duì)象上的鎖并阻塞當(dāng)前線程,直到它重新獲取該鎖。

  Monitor.Pulse 方法:通知等待隊(duì)列中的線程鎖定對(duì)象狀態(tài)的更改。

  Monitor.PulseAll 方法:通知所有的等待線程對(duì)象狀態(tài)的更改。

  通過(guò)對(duì)指定對(duì)象的加鎖和解鎖可以同步代碼段的訪問(wèn)。Monitor.Enter, Monitor.TryEnter 和 Monitor.Exit用來(lái)對(duì)指定對(duì)象的加鎖和解鎖。一旦獲取(調(diào)用了Monitor.Enter)指定對(duì)象(代碼段)的鎖,其他的線程都不能獲取該鎖。舉個(gè)例子來(lái)說(shuō)吧,線程X獲得了一個(gè)對(duì)象鎖,這個(gè)對(duì)象鎖可以釋放的(調(diào)用Monitor.Exit(object) or Monitor.Wait)。當(dāng)這個(gè)對(duì)象鎖被釋放后,Monitor.Pulse方法和 Monitor.PulseAll方法通知就緒隊(duì)列的下一個(gè)線程進(jìn)行和其他所有就緒隊(duì)列的線程將有機(jī)會(huì)獲取排他鎖。線程X釋放了鎖而線程Y獲得了鎖,同時(shí)調(diào)用Monitor.Wait的線程X進(jìn)入等待隊(duì)列。當(dāng)從當(dāng)前鎖定對(duì)象的線程(線程Y)受到了Pulse或PulseAll,等待隊(duì)列的線程就進(jìn)入就緒隊(duì)列。線程X重新得到對(duì)象鎖時(shí),Monitor.Wait才返回。如果擁有鎖的線程(線程Y)不調(diào)用Pulse或PulseAll,方法可能被不確定的鎖定。Pulse, PulseAll and Wait必須是被同步的代碼段鄂被調(diào)用。對(duì)每一個(gè)同步的對(duì)象,你需要有當(dāng)前擁有鎖的線程的指針,就緒隊(duì)列和等待隊(duì)列(包含需要被通知鎖定對(duì)象的狀態(tài)變化的線程)的指針。

  你也許會(huì)問(wèn),當(dāng)兩個(gè)線程同時(shí)調(diào)用Monitor.Enter會(huì)發(fā)生什么事情?無(wú)論這兩個(gè)線程地調(diào)用Monitor.Enter是多么地接近,實(shí)際上肯定有一個(gè)在前,一個(gè)在后,因此永遠(yuǎn)只會(huì)有一個(gè)獲得對(duì)象鎖。既然Monitor.Enter是原子操作,那么CPU是不可能偏好一個(gè)線程而不喜歡另外一個(gè)線程的。為了獲取更好的性能,你應(yīng)該延遲后一個(gè)線程的獲取鎖調(diào)用和立即釋放前一個(gè)線程的對(duì)象鎖。對(duì)于private和internal的對(duì)象,加鎖是可行的,但是對(duì)于external對(duì)象有可能導(dǎo)致死鎖,因?yàn)椴幌嚓P(guān)的代碼可能因?yàn)椴煌哪康亩鴮?duì)同一個(gè)對(duì)象加鎖。

  如果你要對(duì)一段代碼加鎖,最好的是在try語(yǔ)句里面加入設(shè)置鎖的語(yǔ)句,而將Monitor.Exit放在finally語(yǔ)句里面。對(duì)于整個(gè)代碼段的加鎖,你可以使用MethodImplAttribute(在System.Runtime.CompilerServices命名空間)類在其構(gòu)造器中設(shè)置同步值。這是一種可以替代的方法,當(dāng)加鎖的方法返回時(shí),鎖也就被釋放了。如果需要要很快釋放鎖,你可以使用Monitor類和C# lock的聲明代替上述的方法。

  讓我們來(lái)看一段使用Monitor類的代碼:

public void some_method()
{

int a=100;

int b=0;

Monitor.Enter(this);

//say we do something here.

int c=a/b;

Monitor.Exit(this);

}


  上面的代碼運(yùn)行會(huì)產(chǎn)生問(wèn)題。當(dāng)代碼運(yùn)行到int c=a/b; 的時(shí)候,會(huì)拋出一個(gè)異常,Monitor.Exit將不會(huì)返回。因此這段程序?qū)炱穑渌木€程也將得不到鎖。有兩種方法可以解決上面的問(wèn)題。第一個(gè)方法是:將代碼放入try…finally內(nèi),在finally調(diào)用Monitor.Exit,這樣的話最后一定會(huì)釋放鎖。第二種方法是:利用C#的lock()方法。調(diào)用這個(gè)方法和調(diào)用Monitoy.Enter的作用效果是一樣的。但是這種方法一旦代碼執(zhí)行超出范圍,釋放鎖將不會(huì)自動(dòng)的發(fā)生。見下面的代碼:

public void some_method()
{

int a=100;

int b=0;

lock(this);

//say we do something here.

int c=a/b;

}


  C# lock申明提供了與Monitoy.Enter和Monitoy.Exit同樣的功能,這種方法用在你的代碼段不能被其他獨(dú)立的線程中斷的情況。

WaitHandle Class

  WaitHandle類作為基類來(lái)使用的,它允許多個(gè)等待操作。這個(gè)類封裝了win32的同步處理方法。WaitHandle對(duì)象通知其他的線程它需要對(duì)資源排他性的訪問(wèn),其他的線程必須等待,直到WaitHandle不再使用資源和等待句柄沒(méi)有被使用。下面是從它繼承來(lái)的幾個(gè)類:

  Mutex 類:同步基元也可用于進(jìn)程間同步。

  AutoResetEvent:通知一個(gè)或多個(gè)正在等待的線程已發(fā)生事件。無(wú)法繼承此類。

  ManualResetEvent:當(dāng)通知一個(gè)或多個(gè)正在等待的線程事件已發(fā)生時(shí)出現(xiàn)。無(wú)法繼承此類。

  這些類定義了一些信號(hào)機(jī)制使得對(duì)資源排他性訪問(wèn)的占有和釋放。他們有兩種狀態(tài):signaled 和 nonsignaled。Signaled狀態(tài)的等待句柄不屬于任何線程,除非是nonsignaled狀態(tài)。擁有等待句柄的線程不再使用等待句柄時(shí)用set方法,其他的線程可以調(diào)用Reset方法來(lái)改變狀態(tài)或者任意一個(gè)WaitHandle方法要求擁有等待句柄,這些方法見下面:

  WaitAll:等待指定數(shù)組中的所有元素收到信號(hào)。

  WaitAny:等待指定數(shù)組中的任一元素收到信號(hào)。

  WaitOne:當(dāng)在派生類中重寫時(shí),阻塞當(dāng)前線程,直到當(dāng)前的 WaitHandle 收到信號(hào)。

  這些wait方法阻塞線程直到一個(gè)或者更多的同步對(duì)象收到信號(hào)。

  WaitHandle對(duì)象封裝等待對(duì)共享資源的獨(dú)占訪問(wèn)權(quán)的操作系統(tǒng)特定的對(duì)象無(wú)論是收管代碼還是非受管代碼都可以使用。但是它沒(méi)有Monitor使用輕便,Monitor是完全的受管代碼而且對(duì)操作系統(tǒng)資源的使用非常有效率。


Mutex Class

  Mutex是另外一種完成線程間和跨進(jìn)程同步的方法,它同時(shí)也提供進(jìn)程間的同步。它允許一個(gè)線程獨(dú)占共享資源的同時(shí)阻止其他線程和進(jìn)程的訪問(wèn)。Mutex的名字就很好的說(shuō)明了它的所有者對(duì)資源的排他性的占有。一旦一個(gè)線程擁有了Mutex,想得到Mutex的其他線程都將掛起直到占有線程釋放它。Mutex.ReleaseMutex方法用于釋放Mutex,一個(gè)線程可以多次調(diào)用wait方法來(lái)請(qǐng)求同一個(gè)Mutex,但是在釋放Mutex的時(shí)候必須調(diào)用同樣次數(shù)的Mutex.ReleaseMutex。如果沒(méi)有線程占有Mutex,那么Mutex的狀態(tài)就變?yōu)閟ignaled,否則為nosignaled。一旦Mutex的狀態(tài)變?yōu)閟ignaled,等待隊(duì)列的下一個(gè)線程將會(huì)得到Mutex。Mutex類對(duì)應(yīng)與win32的CreateMutex,創(chuàng)建Mutex對(duì)象的方法非常簡(jiǎn)單,常用的有下面幾種方法:

  一個(gè)線程可以通過(guò)調(diào)用WaitHandle.WaitOne 或 WaitHandle.WaitAny 或 WaitHandle.WaitAll得到Mutex的擁有權(quán)。如果Mutex不屬于任何線程,上述調(diào)用將使得線程擁有Mutex,而且WaitOne會(huì)立即返回。但是如果有其他的線程擁有Mutex,WaitOne將陷入無(wú)限期的等待直到獲取Mutex。你可以在WaitOne方法中指定參數(shù)即等待的時(shí)間而避免無(wú)限期的等待Mutex。調(diào)用Close作用于Mutex將釋放擁有。一旦Mutex被創(chuàng)建,你可以通過(guò)GetHandle方法獲得Mutex的句柄而給WaitHandle.WaitAny 或 WaitHandle.WaitAll 方法使用。

  下面是一個(gè)示例:

public void some_method()
{

int a=100;

int b=20;

Mutex firstMutex = new Mutex(false);

FirstMutex.WaitOne();

//some kind of processing can be done here.

Int x=a/b;

FirstMutex.Close();

}


  在上面的例子中,線程創(chuàng)建了Mutex,但是開始并沒(méi)有申明擁有它,通過(guò)調(diào)用WaitOne方法擁有Mutex。

Synchronization Events

  同步時(shí)間是一些等待句柄用來(lái)通知其他的線程發(fā)生了什么事情和資源是可用的。他們有兩個(gè)狀態(tài):signaled and nonsignaled。AutoResetEvent 和 ManualResetEvent就是這種同步事件。


AutoResetEvent Class

  這個(gè)類可以通知一個(gè)或多個(gè)線程發(fā)生事件。當(dāng)一個(gè)等待線程得到釋放時(shí),它將狀態(tài)轉(zhuǎn)換為signaled。用set方法使它的實(shí)例狀態(tài)變?yōu)閟ignaled。但是一旦等待的線程被通知時(shí)間變?yōu)閟ignaled,它的轉(zhuǎn)臺(tái)將自動(dòng)的變?yōu)閚onsignaled。如果沒(méi)有線程偵聽事件,轉(zhuǎn)臺(tái)將保持為signaled。此類不能被繼承。


ManualResetEvent Class

  這個(gè)類也用來(lái)通知一個(gè)或多個(gè)線程事件發(fā)生了。它的狀態(tài)可以手動(dòng)的被設(shè)置和重置。手動(dòng)重置時(shí)間將保持signaled狀態(tài)直到ManualResetEvent.Reset設(shè)置其狀態(tài)為nonsignaled,或保持狀態(tài)為nonsignaled直到ManualResetEvent.Set設(shè)置其狀態(tài)為signaled。這個(gè)類不能被繼承。


Interlocked Class

  它提供了在線程之間共享的變量訪問(wèn)的同步,它的操作時(shí)原子操作,且被線程共享.你可以通過(guò)Interlocked.Increment 或 Interlocked.Decrement來(lái)增加或減少共享變量.它的有點(diǎn)在于是原子操作,也就是說(shuō)這些方法可以代一個(gè)整型的參數(shù)增量并且返回新的值,所有的操作就是一步.你也可以使用它來(lái)指定變量的值或者檢查兩個(gè)變量是否相等,如果相等,將用指定的值代替其中一個(gè)變量的值.


ReaderWriterLock class

  它定義了一種鎖,提供唯一寫/多讀的機(jī)制,使得讀寫的同步.任意數(shù)目的線程都可以讀數(shù)據(jù),數(shù)據(jù)鎖在有線程更新數(shù)據(jù)時(shí)將是需要的.讀的線程可以獲取鎖,當(dāng)且僅當(dāng)這里沒(méi)有寫的線程.當(dāng)沒(méi)有讀線程和其他的寫線程時(shí),寫線程可以得到鎖.因此,一旦writer-lock被請(qǐng)求,所有的讀線程將不能讀取數(shù)據(jù)直到寫線程訪問(wèn)完畢.它支持暫停而避免死鎖.它也支持嵌套的讀/寫鎖.支持嵌套的讀鎖的方法是ReaderWriterLock.AcquireReaderLock,如果一個(gè)線程有寫鎖則該線程將暫停;

  支持嵌套的寫鎖的方法是ReaderWriterLock.AcquireWriterLock,如果一個(gè)線程有讀鎖則該線程暫停.如果有讀鎖將容易倒是死鎖.安全的辦法是使用ReaderWriterLock.UpgradeToWriterLock方法,這將使讀者升級(jí)到寫者.你可以用ReaderWriterLock.DowngradeFromWriterLock方法使寫者降級(jí)為讀者.調(diào)用ReaderWriterLock.ReleaseLock將釋放鎖, ReaderWriterLock.RestoreLock將重新裝載鎖的狀態(tài)到調(diào)用ReaderWriterLock.ReleaseLock以前.


來(lái)源:http://hi.baidu.com/jia818915/blog/item/d4e0374f4263e433aec3ab79.html

posted @ 2008-10-10 11:52 天書 閱讀(744) | 評(píng)論 (0)編輯 收藏
 public bool IsExsitFileName(String TXTFile,String findFileName)
        {
            string strLine;
            StreamReader sr;
            try
            {
                sr = new StreamReader(TXTFile, Encoding.Default);
                while (sr.Peek() > -1)
                {
                    strLine = sr.ReadLine();
                    if (strLine.Equals(findFileName))
                    {
                        sr.Close();
                        return true;
                    }
                }
                sr.Close();
                return false;
            }
            catch (Exception e)
            {
                throw e;
            }
        }
posted @ 2008-10-09 16:20 天書 閱讀(221) | 評(píng)論 (0)編輯 收藏
 卸載服務(wù):打開VS的命令行,切換到項(xiàng)目的bin|Debug目錄下,執(zhí)行InstallUtil.exe /u exe的名字
重新開啟服務(wù):打開VS的命令行,切換到項(xiàng)目的bin|Debug目錄下,執(zhí)行 InstallUtil.exe exe的名字
posted @ 2008-10-07 16:35 天書 閱讀(184) | 評(píng)論 (0)編輯 收藏
在Windows服務(wù)里面,如果訪問(wèn)文件,采用絕對(duì)路徑可以.如果采用相對(duì)路徑,和生成的服務(wù)文件在同一目錄下面.
using System.Reflection;
using System.IO;


            string assemblyFilePath = Assembly.GetExecutingAssembly().Location;
            string assemblyDirPath = Path.GetDirectoryName(assemblyFilePath);
            niList = Utility.GetXmlInfo(assemblyDirPath + "\\FtpHelp.xml");
posted @ 2008-10-07 13:20 天書 閱讀(1268) | 評(píng)論 (0)編輯 收藏

              
          for (int i = 0; i < niList.Count; i++)
            {  
                NeFtpInfo neIn = niList[i];
                DownLoadOneServer dlone = new DownLoadOneServer(neIn);
                Thread throne = new Thread(dlone.toDownLoadOne); //注意這塊是函數(shù)名,不加"()",而不是函數(shù)調(diào)用
                throne.Start();
            }

            Class Object = new Class();
            Thread th = new Thread(Object.Method);
             th.start();


using System;
using System.Collections.Generic;
using System.Text;

namespace FTPDownLoad
{
    class DownLoadOneServer
    {
        NeFtpInfo nfi = new NeFtpInfo();
        public DownLoadOneServer(NeFtpInfo nfi)
        {
            this.nfi = nfi;
        }
        public void toDownLoadOne()
        {
            FtpHelper ftphelper = new FtpHelper(nfi.ServerIP, nfi.UserName, nfi.Password);
            ftphelper.DownLoadDirectory(nfi.ServerPath, nfi.LocalPath);
        }
    }
}

posted @ 2008-09-26 17:45 天書 閱讀(883) | 評(píng)論 (0)編輯 收藏
     摘要:   1using System;  2using System.Collections.Generic;  3using System.Net;  4using System.IO;  5using System.Windows.Forms;&nbs...  閱讀全文
posted @ 2008-09-26 17:36 天書 閱讀(1075) | 評(píng)論 (0)編輯 收藏
System.Diagnostics.Debug.WriteLine(sr.ReadLine());
然后菜單—視圖—錯(cuò)誤輸出
posted @ 2008-09-26 17:34 天書 閱讀(654) | 評(píng)論 (0)編輯 收藏

XML文檔如下:
<?xml version="1.0" encoding="utf-8"?>
<ftpHelp>
  <ftpServer1 NetName="ne1" ServerIP="www.whvideo.cn" ServerPath="/logfiles/W3SVC180" LocalPath="D:/MyWork/download1" UserName="antistone" Password="loginlogout" TimeInterval="15">
  </ftpServer1>
  <ftpServerne2 NetName="ne2" ServerIP="ftp.sjtu.edu.cn" ServerPath="/html/css" LocalPath="D:/MyWork/download2" UserName="" Password="" TimeInterval="15" />
  <ftpServerne3 NetName="ne3" ServerIP="219.231.160.2" ServerPath="/111" LocalPath="D:/MyWork" UserName="lm" Password="113762" TimeInterval="15" />
</ftpHelp>

XML文檔中生成節(jié)點(diǎn)
         XmlDocument xmlDoc = new XmlDocument();
          xmlDoc.Load("FtpHelp.xml");
          XmlNode node = xmlDoc.SelectSingleNode("ftpHelp");
          String cndName = "ftpServer" + this.txtNeName.Text;
          XmlElement cnd = xmlDoc.CreateElement(cndName);
          cnd.SetAttribute("NetName", txtNeName.Text);
          cnd.SetAttribute("ServerIP", txtServerIP.Text);
          cnd.SetAttribute("ServerPath", txtSerPath.Text);
          cnd.SetAttribute("LocalPath", txtLocalPath.Text);
          cnd.SetAttribute("UserName", txtUserName.Text);
          cnd.SetAttribute("Password", txtPassword.Text);
          cnd.SetAttribute("NetName", txtNeName.Text);
          cnd.SetAttribute("TimeInterval", txtTimeInterval.Text);
          node.AppendChild(cnd);
          xmlDoc.Save("FtpHelp.xml");

xml文檔中遍歷查詢節(jié)點(diǎn)

            String neName = txtNeName.Text;
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("FtpHelp.xml");
            XmlNode node = xmlDoc.SelectSingleNode("ftpHelp");
            foreach (XmlNode nd in node.ChildNodes)
            {
                if (nd.Attributes["NetName"].Value == neName)
                {
                  MessageBox.Show("該網(wǎng)元已注冊(cè),注冊(cè)信息為:","提示");
                  this.plNeInfo.Visible = true;
                  txtServerIP.Text = nd.Attributes["ServerIP"].Value;
                  txtSerPath.Text = nd.Attributes["ServerPath"].Value;
                  txtLocalPath.Text=nd.Attributes["LocalPath"].Value;
                  txtUserName.Text = nd.Attributes["UserName"].Value;
                  txtPassword.Text = nd.Attributes["Password"].Value;
                  txtTimeInterval.Text = nd.Attributes["TimeInterval"].Value;
                  this.btnAdd.Visible = false;
                  return;
                }
            }
            MessageBox.Show("該網(wǎng)元不存在,請(qǐng)注冊(cè)","提示");



 private List<NeFtpInfo> GetXmlInfo(String fileName,List<String> neNameList)
        {
            if (neNameList!=null)
            {
                List<NeFtpInfo> neInList = new List<NeFtpInfo>();
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(fileName);
                XmlNode node = xmlDoc.SelectSingleNode("ftpHelp");

                for (int i = 0; i < neNameList.Count; i++)
                {
                    NeFtpInfo ni = new NeFtpInfo();
                    String neName = neNameList[i];
                    int j = 0;
                    for (j = 0; j < node.ChildNodes.Count; j++)
                    {
                        XmlNode nd = node.ChildNodes[j];
                        if (nd.Attributes["NetName"].Value == neName)
                        {
                            ni.NeName = neName;
                            ni.ServerIP = nd.Attributes["ServerIP"].Value;
                            ni.ServerPath = nd.Attributes["ServerPath"].Value;
                            ni.LocalPath = nd.Attributes["LocalPath"].Value;
                            ni.UserName = nd.Attributes["UserName"].Value;
                            ni.Password = nd.Attributes["Password"].Value;
                            ni.IntervalTime = nd.Attributes["TimeInterval"].Value;
                            neInList.Add(ni);
                            break;
                        }
                    }
                    if (j == node.ChildNodes.Count)
                    {
                        MessageBox.Show("網(wǎng)元" + neName + "沒(méi)有注冊(cè)過(guò)相關(guān)信息", "提示");
                    }
                }
                return neInList;
            }
            else
            {
                return null;
            }
        }

posted @ 2008-09-25 15:41 天書 閱讀(162) | 評(píng)論 (0)編輯 收藏
僅列出標(biāo)題
共13頁(yè): First 3 4 5 6 7 8 9 10 11 Last 

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(5)

隨筆檔案

文章分類

文章檔案

好友的Bolg

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美jizz19性欧美| 久久伊人免费视频| 久久国产精彩视频| 午夜精品在线视频| 午夜亚洲福利在线老司机| 亚洲综合激情| 久久www成人_看片免费不卡| 欧美在线日韩精品| 久久在线免费视频| 欧美大片免费观看在线观看网站推荐| 欧美搞黄网站| a4yy欧美一区二区三区| 亚洲一区二区免费视频| 欧美中文字幕视频| 欧美激情1区2区3区| 国产精品激情偷乱一区二区∴| 国产精品日韩在线播放| 黄色av一区| 99精品国产99久久久久久福利| 99re亚洲国产精品| 香蕉久久一区二区不卡无毒影院| 久久久久国产成人精品亚洲午夜| 久久先锋资源| 99精品国产在热久久婷婷| 亚洲欧美日韩在线高清直播| 久久夜色精品国产欧美乱极品| 欧美激情片在线观看| 国产精品捆绑调教| 亚洲欧洲在线视频| 亚洲六月丁香色婷婷综合久久| 日韩视频中文| 久久国产精品一区二区| 欧美精品一区二区精品网| 国产精品夜夜夜一区二区三区尤| 一区二区视频在线观看| 亚洲视频成人| 蜜桃av一区| 亚洲在线观看| 欧美激情一二三区| 国外成人在线视频网站| 一二三区精品福利视频| 老司机成人在线视频| 一区电影在线观看| 欧美高清你懂得| 国产主播一区二区| 性欧美超级视频| 亚洲毛片av| 欧美二区在线观看| 亚洲国产成人在线播放| 久久久精品国产一区二区三区 | 欧美国产日韩二区| 狠狠久久五月精品中文字幕| 亚洲一区二区高清视频| 欧美激情一区二区三区蜜桃视频| 午夜精品在线| 国产精品日韩欧美大师| 亚洲一区二区精品在线观看| 亚洲电影下载| 免费h精品视频在线播放| 在线观看91久久久久久| 久久久福利视频| 久久精品一区二区三区四区 | 欧美黄色网络| 日韩视频不卡| 99爱精品视频| 欧美日韩在线观看一区二区三区| 亚洲精品一区二| 亚洲欧洲精品一区二区| 欧美成人免费va影院高清| 在线不卡视频| 亚洲福利视频二区| 欧美破处大片在线视频| 一区二区av在线| 亚洲午夜未删减在线观看| 国产美女精品视频免费观看| 欧美中文字幕久久| 久久精品国产亚洲aⅴ| 亚洲国产免费看| 亚洲精品网站在线播放gif| 国产精品第一页第二页第三页| 午夜欧美精品| 久久久久久国产精品一区| 91久久精品国产91久久性色| 久久久久久高潮国产精品视| 久久婷婷国产综合精品青草| 国产欧美精品在线| 久久aⅴ国产欧美74aaa| 欧美在线观看视频在线| 好吊色欧美一区二区三区四区| 欧美14一18处毛片| 欧美电影电视剧在线观看| 亚洲欧美日韩精品| 开心色5月久久精品| 亚洲视频中文| 久久精品国内一区二区三区| 日韩视频免费在线观看| 亚洲在线视频| 亚洲激情在线观看视频免费| 在线视频欧美日韩| 亚洲电影在线免费观看| 国产精品99久久久久久人| 亚洲高清视频一区| 亚洲一区影音先锋| 亚洲美女视频| 久久久综合激的五月天| 午夜日韩视频| 欧美精品在线观看播放| 久久综合五月| 国产嫩草影院久久久久| 亚洲黄色尤物视频| 好看不卡的中文字幕| 亚洲老司机av| 亚洲韩国一区二区三区| 亚洲在线播放| 亚洲天堂成人| 欧美国产丝袜视频| 久久综合给合久久狠狠狠97色69| 欧美日韩免费网站| 亚洲电影在线播放| 国产午夜精品一区理论片飘花 | 亚洲电影激情视频网站| 性久久久久久久久久久久| 亚洲视频精品| 欧美日韩一区免费| 亚洲国产精品视频| 亚洲第一毛片| 久久久久久久久久码影片| 欧美在线电影| 国产区日韩欧美| 性娇小13――14欧美| 欧美在线一二三四区| 国产精品久久久免费| 99国产麻豆精品| 亚洲视频在线一区| 欧美日韩精品二区| 99视频超级精品| 亚洲午夜激情免费视频| 欧美性开放视频| 在线一区视频| 久久激情视频久久| 狠狠色综合日日| 久久精品成人| 你懂的视频欧美| 91久久综合| 欧美日韩国产三级| 妖精成人www高清在线观看| 亚洲色无码播放| 一区二区免费在线观看| 亚洲视频在线观看网站| 欧美日韩在线亚洲一区蜜芽| 亚洲最新色图| 欧美一区亚洲| 在线精品国产欧美| 免费日韩成人| 亚洲精选中文字幕| 欧美一级视频| 在线播放亚洲| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲区第一页| 欧美亚洲三级| 亚洲丰满在线| 国产精品二区在线观看| 性8sex亚洲区入口| 亚洲国产成人av| 亚洲免费中文字幕| 国产自产女人91一区在线观看| 久久久免费精品| 99热在这里有精品免费| 久久国产一区二区| 日韩午夜一区| 国产一区二区日韩精品| 女人天堂亚洲aⅴ在线观看| 日韩一级在线| 欧美成人情趣视频| 欧美一区二区三区在线看| 亚洲高清免费在线| 国产精品久久久久久久久久免费看 | 国产欧美日韩综合精品二区| 久久久另类综合| 9色精品在线| 免费毛片一区二区三区久久久| 一区二区三区精品视频| 国产一区在线看| 欧美婷婷六月丁香综合色| 久久精品成人一区二区三区蜜臀 | 91久久久在线| 国产精品美女久久久久久久 | 国内外成人免费激情在线视频| 欧美成人r级一区二区三区| 一区二区三区高清在线观看| 女人色偷偷aa久久天堂| 性色av一区二区三区| 亚洲美女精品久久| 激情综合自拍| 国产日韩在线一区| 欧美日韩在线看| 欧美大胆a视频| 久久综合影视| 久久午夜电影| 久久精品夜色噜噜亚洲a∨|