2011-08-08 52 views
0

我想在C#中保存一個sftp文件。我有found this example on SaveFileDialog但我不能讓它在我的應用程序中工作(其實,我得到一個錯誤,每當我嘗試使用SaveFileDialog說它不存在,我能不能解決問題)SFTP幫助。保存在C#文件#

這是正確的方式保存文件?我不是單擊按鈕,而是從另一個位置獲取sftp文件,並將其保存在本地,以便我可以對其執行一些命令。

如果有幫助,我正在使用Microsoft Visual Studio 2010。

編輯:我想我把人們與我發現的例子搞混了。以下是我如何獲取文件:

protected void Page_Load(object sender, EventArgs e) 
    { 
    Sftp sftp = new AmexSFTP.src.Sftp(Config.sSFTPUrl, 
            Config.sSFTPAccount, 
            Config.sSFTPPasswd); 
    // Connect to SFTP server 
    sftp.Connect(); 

    List<string> InputFiles = sftp.GetFileList("output"); 

    //Save files in for each loop here... 
    ....} 

    public Sftp(string sftpHost, string user, string password) 
     : base(sftpHost, user, password) 
    { 
     Init(); 
    } 

    private void Init() 
    { 
     m_monitor = new MyProgressMonitor(this); 
    } 

    public List<string> GetFileList(string path) 
    { 
     List<string> list = new List<string>(); 
     foreach (Tamir.SharpSsh.jsch.ChannelSftp.LsEntry entry in SftpChannel.ls(path)) 
     { 
      list.Add(entry.getFilename().ToString()); 
     } 
     return list.ToList(); 
    } 

也許SaveFileDialog不正確?這是我發現我所有的谷歌結果,所以我認爲它是。

謝謝!

+0

OpenFile是否實際創建一個文件呢? – mtijn

+0

你想讓用戶看到一個對話框,或者你可以保存文件,而無需用戶輸入嗎? –

+0

@ James-我想在沒有用戶輸入的情況下保存文件。這些文件保存在我想訪問的另一個sftp站點上。我用這個代碼來獲取文件:'List list = new List (); foreach(在SftpChannel.ls(路徑)中的Tamir.SharpSsh.jsch.ChannelSftp.LsEntry條目){list.Add(entry .getFilename()。ToString());} return list.ToList();' –

回答

0

我認爲你有點混淆。除非我誤認爲Page_Load()方法是ASP.NET WebForms項目的一部分。如果是這種情況,那麼您就是混合技術:SaveFileDialog是一個WinForms控件,通常用於客戶端應用程序,而不是網頁的代碼隱藏代碼。