我在專案中已經用到了好幾次ftp,所以為了讓我的生活更美好,我把他們都集中起來在這幾個類裡面,我也希望您可以毫無困難的使用他,完整的專案**,可以看我的部落格如果有用的話,接的點讚哦。
要想使用這些類,需要在你的**中引入system.io 和system.net這兩個命名空間,然後你就可以直接用ftp類初始化乙個你要是使用的物件,可以使用精選的功能,使用後記得釋放資源哦。
/* create object instance */
ftp ftpclient = new ftp(@"", "user", "password");
/* upload a file */
ftpclient.upload("etc/test.txt", @"c:\users\metastruct\desktop\test.txt");
/* download a file */
ftpclient.download("etc/test.txt", @"c:\users\metastruct\desktop\test.txt");
/* delete a file */
ftpclient.delete("etc/test.txt");
/* rename a file */
ftpclient.rename("etc/test.txt", "test2.txt");
/* create a new directory */
ftpclient.createdirectory("etc/test");
/* get the date/time a file was created */
string filedatetime = ftpclient.getfilecreateddatetime("etc/test.txt");
console.writeline(filedatetime);
/* get the size of a file */
string filesize = ftpclient.getfilesize("etc/test.txt");
console.writeline(filesize);
/* get contents of a directory (names only) */
string ******directorylisting = ftpclient.directorylistdetailed("/etc");
for (int i = 0; i < ******directorylisting.count(); i++)
/* get contents of a directory with detailed file/directory info */
string detaildirectorylisting = ftpclient.directorylistdetailed("/etc");
for (int i = 0; i < detaildirectorylisting.count(); i++)
/* release resources */
ftpclient = null;
這是這個類以及相關的注釋.
class ftp
/* download file */
public void download(string remotefile, string localfile)
}catch (exception ex)
/* resource cleanup */
localfilestream.close();
ftpstream.close();
ftpresponse.close();
ftprequest = null;
}catch (exception ex)
return;
}/* upload file */
public void upload(string remotefile, string localfile)
}catch (exception ex)
/* resource cleanup */
localfilestream.close();
ftpstream.close();
ftprequest = null;
}catch (exception ex)
return;
}/* delete file */
public void delete(string deletefile)
catch (exception ex)
return;
}/* rename file */
public void rename(string currentfilenameandpath, string newfilename)
catch (exception ex)
return;
}/* create a new directory on the ftp server */
public void createdirectory(string newdirectory)
catch (exception ex)
return;
}/* get the date/time a file was created */
public string getfilecreateddatetime(string filename)
catch (exception ex)
/* resource cleanup */
ftpreader.close();
ftpstream.close();
ftpresponse.close();
ftprequest = null;
/* return file created date time */
return fileinfo;
}catch (exception ex)
/* return an empty string array if an exception occurs */
return "";
}/* get the size of a file */
public string getfilesize(string filename)
}catch (exception ex)
/* resource cleanup */
ftpreader.close();
ftpstream.close();
ftpresponse.close();
ftprequest = null;
/* return file size */
return fileinfo;
}catch (exception ex)
/* return an empty string array if an exception occurs */
return "";
}/* list directory contents file/folder name only */
public string directorylist******(string directory)
}catch (exception ex)
/* resource cleanup */
ftpreader.close();
ftpstream.close();
ftpresponse.close();
ftprequest = null;
try
catch (exception ex)
}catch (exception ex)
/* return an empty string array if an exception occurs */
return new string ;
}/* list directory contents in detail (name, size, created, etc.) */
public string directorylistdetailed(string directory)
}catch (exception ex)
/* resource cleanup */
ftpreader.close();
ftpstream.close();
ftpresponse.close();
ftprequest = null;
try
catch (exception ex)
}catch (exception ex)
/* return an empty string array if an exception occurs */
return new string ;
}}
對於非預設使用者名稱和密碼的需求的假設,我用到了雙重傳輸模型,因為沒有這些設定,我曾經遇到過問題。
本文包括源**和檔案在cpol下授權。
著作權宣告:本文由木木老師
C FTP上傳的實現方法 包括斷點上傳
在使用ftp上傳一般使用 ftpwebrequest建立物件 執行對應操作 如下1.直接上傳 在此需要使用req.ftp.method webrequestmethods.ftp.uploadfile 2.斷點續傳 自己實現的,不知道是否科學 但須先讀取伺服器上已存在的該檔案的大小,上傳時直接跳過該...
簡單的String類
當初為了筆試,自己準備了乙個,比較簡單,所以距離乙個比較好的string builder還是有差距的,僅供參考 不排版了阿 p include include include class string string const char pchar else string const string ...
vb類的簡單示例
如說,textbox的change事件或者click事件,會使用才能寫出有用的事件來 在你明白事件之前,你必須知道屬性和方法的用法和建立方法,本人假定你已經會了 在類中,宣告乙個事件是非常容易的 event thisevent 在類中 如上就宣告了乙個事件了,然後在需要觸發本事件的位置寫 raise...