C++怎么读取或者写入到局域网共享的文件内容?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++怎么读取或者写入到局域网共享的文件内容?相关的知识,希望对你有一定的参考价值。

我已经知道了局域网某台电脑的IP和计算机名称。也知道绝对路径。
我用
CStdioFile in;
CString strLine="1231456456";
in.Open(_T("\\PC201403141447\\gx\\111.txt"),CFile::modeReadWrite);
in.SeekToEnd();
in.WriteString(_T(strLine+"\r\n"));
in.Close();
这样写不进去也读不到。共享已经设置好了。手动操作完全可以修改和写入。
我只工作需要。不是盗取人家什么文件。
求大虾赐予代码
我只是单纯的读取和写入操作。不是要远程或者其他操作。

1)创建一个socket,可以选择TCP或者UDP方式。
2)选择要传输的文件,并打开。
3)读取文件的内容,分批次传输给对方。比如每次传64个字节,或者512个字节,等等。按实际情况和速度要求做优化就好了。
4)接收方分批次接受所有的字节后拼成一个完整的文件,保存。
5)为了保证传输的文件的完整性,发送方要对文件的内容做md5 checksum,接收方要对接受的内容对md5 checksum。然后双方交换该Checksum值,以比较是否一致。如不一致,则要求重传。
参考技术A 在C#中可以用FileStream 这个类来读取文件,包括局域网中的共享文件,它有很多构造函数,其中有一个是FileStream (String, FileMode, FileAccess) ;
String 为你要读取的文件的路径,是全路径,如果是读取局域网中的共享文件,可以表示为 \\机器名\共享目录\文件名
FileMode 为确定如何打开或创建文件
FileAccess 为确定 FileStream 对象访问文件的方式。
具体可以参考一下MSDN中的ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.NETDEVFX.v20.chs/cpref8/html/T_System_IO_FileStream_Members.htm 注意,这是MSDN2005中的地址。
参考技术B CStdioFile类是支持使用UNC路径名来访问共享文件的。
首先,你的代码问题,PC名前面应该是四个反斜杠(才能转译出两个)。
另外,通常都是网络权限问题,注意修改权限。
参考技术C

你把

"\\\\PC201403141447\\\\gx\\\\111.txt"

换成

"\\\\\\\\PC201403141447\\\\gx\\\\111.txt"

试试(开头多加两个反斜杠)

参考技术D 先访问过这台电脑、并且有权限,是这样写法的。也可以映射成本地路径 net use命令
~~~~~~~~~~~~~

局域网文件共享

WIN7系统局域网文件共享

步骤一:

打开网络和共享中心----更改高级共享设置

技术分享图片

步骤二:

选择 公共网络---选择以下选项:启动网络发现------启动文件和打印机共享-----启用共享以便可以访问网络的用户可以读取和写入公用文件夹中的文件(可以不选)----关闭密码保护共享( 注释:其他选项默认即可!)

技术分享图片

步骤三:

保存!

技术分享图片

步骤四:

选择需要共享的文件夹 (比如:DY) 右击--属性

技术分享图片

步骤五:

共享---- 选择 共享(S)...---弹出对话框---添加“Guest”(注释:选择“Guest”是为了降低权限,以方便于所有用户都能访问!)---共享

技术分享图片

步骤六:

选择 高级共享... ----选择 共享此文件 ----确定!

技术分享图片

步骤七:

其他用户,通过开始---运行---IP (快捷键 WIN+R)IP 访问你共享的文件!

技术分享图片

步骤八:

共享成功!

技术分享图片

以上是关于C++怎么读取或者写入到局域网共享的文件内容?的主要内容,如果未能解决你的问题,请参考以下文章

Linux deepin系统设置局域网共享 而且只能有读取权限

OpenWrt 开 smb共享,局域网读取速度很慢,怎么破

OpenWrt 开 smb共享,局域网读取速度很慢,怎么破

局域网文件共享

c# 访问局域网共享文件夹

局域网内怎样让其它电脑都能访问到一台电脑上的共享文件夹