当前位置:编程学习 > C#/ASP.NET >>

大神帮帮忙 很急

C#winform完成文件传输  这个是服务器端的代码  在客户端穿过来的文件只能保存在当前程序的Debug的根目录下,我如何将文件指定一个存储位置。还有 我在客户端如何获取文件在服务器端的路径。
private void Form1_Load(object sender, EventArgs e)
{
//开启接收线程
            Thread TempThread = new Thread(new ThreadStart(this.StartReceive));
            TempThread.Start();
          //  StartReceive();
}


#endregion



#region 功能函数

private void StartReceive()
{
//创建一个网络端点
IPEndPoint ipep = new IPEndPoint(IPAddress.Any, int.Parse("2010"));

//MessageBox.Show(IPAddress.Any);

//创建一个套接字
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

//绑定套接字到端口
server.Bind(ipep);

//开始侦听(并堵塞该线程)
server.Listen(10);

//确认连接
Socket client = server.Accept();

//获得客户端节点对象
IPEndPoint clientep = (IPEndPoint)client.RemoteEndPoint;



//获得[文件名]
string SendFileName = System.Text.Encoding.Unicode.GetString(TransferFiles.ReceiveVarData(client));
//MessageBox.Show("文件名" + SendFileName);

//获得[包的大小]
string bagSize = System.Text.Encoding.Unicode.GetString(TransferFiles.ReceiveVarData(client));
//MessageBox.Show("包大小" + bagSize);

//获得[包的总数量]
int bagCount = int.Parse(System.Text.Encoding.Unicode.GetString(TransferFiles.ReceiveVarData(client)));
//MessageBox.Show("包的总数量" + bagCount);

//获得[最后一个包的大小]
string bagLast = System.Text.Encoding.Unicode.GetString(TransferFiles.ReceiveVarData(client));
//MessageBox.Show("最后一个包的大小" + bagLast);

//创建一个新文件
FileStream MyFileStream = new FileStream(SendFileName, FileMode.Create, FileAccess.Write);

//已发送包的个数
int SendedCount = 0;

while (true)
{
byte[] data = TransferFiles.ReceiveVarData(client);
if (data.Length == 0)
{
break;
}
else
{
SendedCount++;
//将接收到的数据包写入到文件流对象
MyFileStream.Write(data, 0, data.Length);
//显示已发送包的个数
//MessageBox.Show("已发送包个数"+SendedCount.ToString());
                    
}
}

//关闭文件流
MyFileStream.Close();
//关闭套接字
client.Close();

//填加到dgv里
//文件大小,IP,已发送包的个数,文件名,包的总量,最后一个包的大小
//this.dataGridView1.Rows.Add(bagSize, clientep.Address, SendedCount, SendFileName, bagCount, bagLast);

//MessageBox.Show("文件接收完毕!");

}
--------------------编程问答-------------------- 大神们 帮帮忙啊 --------------------编程问答-------------------- //创建一个新文件
FileStream MyFileStream = new FileStream(SendFileName, FileMode.Create, FileAccess.Write);

这一句,把SendFileName这个改成你想要保存的路径。。 --------------------编程问答--------------------
引用 2 楼 yyantifa 的回复:
//创建一个新文件
FileStream MyFileStream = new FileStream(SendFileName, FileMode.Create, FileAccess.Write);

这一句,把SendFileName这个改成你想要保存的路径。。

+1 --------------------编程问答-------------------- //创建一个新文件
FileStream MyFileStream = new FileStream("D:\\" + SendFileName, FileMode.Create, FileAccess.Write); --------------------编程问答-------------------- 看不懂,帮顶吧 --------------------编程问答-------------------- 为什么我的服务器端不能一直接收穿过来的文件,而是我将服务器端的进程关闭,再一次启动才能接收呢。
怎么回事?还有 我怎么才能给你们回答的人加分 。不太懂 需要大家帮帮忙哈 --------------------编程问答-------------------- 有人知道吗?? --------------------编程问答--------------------
引用 4 楼 vb763305825 的回复:
//创建一个新文件
FileStream MyFileStream = new FileStream("D:\\" + SendFileName, FileMode.Create, FileAccess.Write);



那个我怎么从客户端获取服务器端的这个路径,并且把这个路径下的文件显示到treeview控件中 --------------------编程问答-------------------- 服务器端处理完成后,把结果返回给客户端就行了,至于怎么显示到控件里面那就是客户端的操作了
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,