2011-07-03 41 views
1

我有一個具有單選按鈕的表單,每個表單都給出一個字符串中的文件名,我想要做的是將該字符串作爲任何文件的名稱用戶上傳。FTP - 以不同的名稱上傳文件

這將是偉大的,如果你能向我解釋如何重命名,因爲我已經得到了它的代碼上傳只是幫我修改這個功能,我可能會添加到參數「字符串類型「tho:

public void uploadFTP(string filename, string type, string password, ProgressBar progressbar) 
{ 
    WebClient client = new WebClient(); 
    client.Credentials = new System.Net.NetworkCredential("username", password); 

    try 
    { 
     client.UploadFileAsync(new Uri(@"ftp://ftpaddress.com" + "/" + new FileInfo(filename).Name), "STOR", filename); 
    } 
    catch(System.InvalidCastException) 
    { 
     // Handled it 
    } 
    catch (System.ArgumentException) 
    { 
     // Handled it 
    } 
    client.UploadProgressChanged += (s, e) => 
    { 
     progressbar.Value = e.ProgressPercentage; 
    }; 
    client.UploadFileCompleted += (s, e) => 
    { 
     MessageBox.Show("Upload complete", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); 
    }; 
} 

如果重要:文件是RTF(RichTextBox)。

謝謝!

+0

我不確定我是否理解你的問題。你能澄清一下嗎?我的理解是,您想重命名您上傳的文件。爲什麼不先重命名本地文件然後上傳?這將會更容易,更快捷。 – Compuholic

+0

[當用戶目錄與根目錄不同時無法用c#ftp方法重命名文件]的可能重複(http://stackoverflow.com/questions/3035610/unable-to-rename-file-with-c-ftp-methods -when-current-user-directory-is-differen) – ChrisF

回答

4

然後,只需上傳到不同的網址。將代碼中的new FileInfo(filename).Name替換爲您實際需要的名稱。另外,我認爲不使用字符串操作更好。 STOR命令是默認的。

client.UploadFileAsync(new Uri(new Uri("ftp://ftpaddress.com"), newName)), filename); 
+0

謝謝你的幫助。 :) – MasterMastic