我无法通过TCP发送整个文件夹。我最初的想法是,发件人发送一个包含给定文件路径的字符串,例如C:// MyFolder/MySubFolder/MyFile,然后接收者创建文件夹和子文件夹。然后发件人继续发送包含其目录的文件。如何通过TCP在c#中发送文件夹?
我认为这不是说这样做的最好方法。有更好的方法吗?
编辑:
对不起,如果我有点模糊。我有一个文件传输应用程序,显然发送/接收文件,我想添加一种方式来发送整个文件夹。
我无法通过TCP发送整个文件夹。我最初的想法是,发件人发送一个包含给定文件路径的字符串,例如C:// MyFolder/MySubFolder/MyFile,然后接收者创建文件夹和子文件夹。然后发件人继续发送包含其目录的文件。如何通过TCP在c#中发送文件夹?
我认为这不是说这样做的最好方法。有更好的方法吗?
编辑:
对不起,如果我有点模糊。我有一个文件传输应用程序,显然发送/接收文件,我想添加一种方式来发送整个文件夹。
使用着名的归档方法(zip,rar ...)和传输数据。提取在同行方。这样你节省了:
是的,我用DotNetZip并归档整个文件夹,然后在接收器中提取它,然后删除zip文件。完美而完美地工作,但很遗憾,它被拒绝了。我无法归档文件 – Raphael 2011-04-25 02:12:01
为什么它被拒绝?这是一个家庭作业,并被你的老师拒绝,或者你有一个技术问题?无论如何,如果你要自己实现它,你应该写一个迭代文件夹的递归函数,发送他们的名字(你需要一些简单的协议)和文件。 – Xaqron 2011-04-25 07:39:50
是一个技术问题。如果我要发送一个内含5GB文件的文件夹,则需要大量时间和资源才能存档。我实际上正在做你现在正在说的内容,但它有点难,因为接收器应用程序已经有一个文件协议(很差)。我正在考虑重做接收应用程序。 – Raphael 2011-04-25 07:52:30
您需要某种类型的文件传输协议(即FTP)。在发送端使用易于设置的c#FTP服务器库(即:这一个:http://sourceforge.net/projects/csftpserver/),并在客户端使用FtpWebRequest
来获取整个文件夹结构。
如果你考虑压缩/压缩: 你可以看看GZipStream类。
http://www.geekpedia.com/tutorial190_Zipping-files-using-GZipStream.html
“有没有更好的方法? - FTP? – 2011-04-25 01:03:03
@Mitch小麦,是的,可悲的是它必须是TCP – Raphael 2011-04-25 02:09:54