2010-03-21 71 views
1

这就是我现在正在使用的文件驻留在同一台服务器上,它的工作原理。如何在ASP.Net中使用Server.MapPath打开远程文本文件?

Dim FILENAME as String = Server.MapPath("Output.txt") 

Dim objStreamWriter as StreamWriter 
objStreamWriter = File.CreateText(FILENAME) 

dr = myCommand.ExecuteReader() 
While dr.Read() 

objStreamWriter.WriteLine("{0}|{1}|{2:yyyy-MM-dd}|{3:yyyy-MM-dd}", dr(0), dr(1), dr(2), dr(3)) 

End While 
objStreamWriter.Close() 

我打算将文件FTP传送到另一台服务器做一次,但有没有办法做到这一点在远程服务器上?即在远程服务器上创建一个文本文件并写入它?没有找到该用法的任何实例。在这种情况下如何使用ServerXMLHTTP替换Server.MapPath?

非常感谢你的时间。

回答

1

使用MapPathStreamWriter这种方式将不起作用。这是针对本地文件场景的。您可以使用FtpWebRequest直接从.net FTP文件。

下面是使用的FtpWebRequest写(来自实施例here)的文件的一个例子:

 FtpWebRequest request = 
      (FtpWebRequest)WebRequest.Create("ftp://www.contoso.com/output.txt"); 
     request.Method = WebRequestMethods.Ftp.UploadFile; 

     // This example assumes the FTP site uses anonymous logon. 
     request.Credentials = 
      new NetworkCredential ("anonymous","[email protected]"); 

     Stream requestStream = request.GetRequestStream(); 
     requestStream.Write(stuff); // write your stuff here 
     requestStream.Close(); 

     FtpWebResponse response = (FtpWebResponse)request.GetResponse(); 

     Console.WriteLine("Upload File Complete, status {0}", 
      response.StatusDescription); 

     response.Close(); 
+0

感谢您的溶液。该输出文件是定期创建的。如何远程删除文件并将新创建的文件放在那里? – ThinkCode 2010-03-21 14:23:56

+0

@NHTechGuy - 看看这个链接:http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.aspx还有一个如何删除远程文件的例子。 – Keltex 2010-03-21 15:07:41