MFC 如何上传文件工其它电脑的共享盘
时间: 2023-06-25 20:08:30 浏览: 59
在 MFC 中,要上传文件到其他电脑的共享盘,可以使用 CFile 类和 CFile::Open() 方法来打开本地文件,然后使用 CFile::Read() 方法读取文件内容,最后使用 Winsock 或者 FTP 等协议将文件上传到共享盘上。
下面是一个示例代码:
```cpp
void CMyAppDlg::OnButtonUpload()
{
// 打开本地文件
CFile file;
if (!file.Open(_T("C:\\test.txt"), CFile::modeRead)) {
AfxMessageBox(_T("Failed to open file!"));
return;
}
// 读取文件内容
DWORD dwSize = (DWORD)file.GetLength();
char* pBuffer = new char[dwSize];
file.Read(pBuffer, dwSize);
file.Close();
// 连接共享盘服务器
SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
SOCKADDR_IN addr;
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr("192.168.1.100"); // 共享盘服务器 IP 地址
addr.sin_port = htons(139); // 共享盘服务器端口号
if (connect(sock, (SOCKADDR*)&addr, sizeof(addr)) < 0) {
AfxMessageBox(_T("Failed to connect to server!"));
delete[] pBuffer;
return;
}
// 发送文件内容
if (send(sock, pBuffer, dwSize, 0) < 0) {
AfxMessageBox(_T("Failed to send file!"));
closesocket(sock);
delete[] pBuffer;
return;
}
// 关闭连接
closesocket(sock);
delete[] pBuffer;
}
```
在这个示例中,我们首先使用 CFile::Open() 方法打开本地文件,然后使用 CFile::Read() 方法读取文件内容到缓冲区中。接着,我们使用 socket() 函数创建一个 TCP 套接字,然后使用 connect() 函数连接到共享盘服务器。最后,我们使用 send() 函数发送文件内容到共享盘服务器,然后关闭连接,释放缓冲区。需要注意的是,这个示例中使用的是 SMB 协议,需要在 Windows 系统上启用 SMB1 协议才能够正常连接到共享盘服务器。