【发布时间】:2013-02-06 23:18:42
【问题描述】:
我想要做的是接收客户端发送的文件。但是在下面显示的问题行中,我得到了一个异常
System.IO.DirectoryNotFoundException:找不到路径“C:\Users\asd\Desktop\”的一部分。
这是我的服务器代码:
IPEndPoint ipEnd;
Socket sock;
byte[] clientData = new byte[1024 * 5000];
ipEnd = new IPEndPoint(IPAddress.Any, 5000);
sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
sock.Bind(ipEnd);
sock.Listen(5000);
Socket clientSock=sock.Accept();
int receivedBytesLen = clientSock.Receive(clientData);
int fileNameLen = BitConverter.ToInt32(clientData, 0);
string fileName = Encoding.ASCII.GetString(clientData, 4, fileNameLen);
BinaryWriter bWrite = new BinaryWriter(File.Open(@"C:\Users\asd\Desktop\"+ fileName,FileMode.Append));//problem Line
bWrite.Write(clientData, 4 + fileNameLen, receivedBytesLen - 4 - fileNameLen);
bWrite.Close();
clientSock.Close();
MessageBox.Show("recieved...");
【问题讨论】:
-
明显的问题 - 这条路径存在吗?
-
你可以访问你在这里调用这个东西的那一侧的路径
BinaryWriter bWrite = new BinaryWriter(File.Open(@"C:\Users\asd\Desktop\" ... -
目录是否存在?在尝试在其中创建文件之前,使用 System.Io.Directory.Exists 确定您的目录是否已经存在以及是否不使用 System.IO.Directory.CreateDirectory 创建它。
标签: c# sockets file-transfer