局域网内如何远程其他电脑读写文件

孟如庭 2015-08-24 09:37:49

局域网内,远程读写文件。比如程序运行在A电脑,读写B电脑的某些文件。有什么简单的方法吗。

我想了两种简单方法,
一种,fopen 指定的路径带IP地址,结果是打不开的。看了MSDN,感觉有这个功能,但是不知道为啥错误
fp=fopen("\\192.168.1.105\\d\\1.txt","w+");

第二种,准备用shell命令,比如copy之类的,但是也不能带IP地址
copy "d:\\1.txt" "\\192.168.1.103\\d:\\23.txt"

如果说,在b电脑写个socket服务,A发数据到B电脑的socket服务,再有socket来完成实际的读写,肯定是可以的,但是我觉得工作量有点大,太麻烦了,有没有什么简单的方法?





...全文
1109 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-09-05
  • 打赏
  • 举报
回复
在百度搜“如何映射网络驱动器”
孟如庭 2015-09-04
  • 打赏
  • 举报
回复
结贴了。最后也没用成。
赵4老师 2015-08-27
  • 打赏
  • 举报
回复
手动映射网络驱动器 y: 到 \\192.168.1.103\d,输入相应用户名和密码,如果不能打开共享文件夹, 请在192.168.1.103上设置共享名d对应的文件夹上设置相应的共享和安全权限。
赵4老师 2015-08-27
  • 打赏
  • 举报
回复
引用 15 楼 feiyue1206 的回复:
[quote=引用 13 楼 zhao4zhong1 的回复:] 先手动映射网络驱动器、断开网络驱动器都成功后, 再在程序中参考10楼代码调用net use命令。 ru如果嫌system弹出cmd窗口不好看的话,改为
#include <windows.h>
//...
WinExec("net use y: \\\\192.168.1.103\\d password",SW_HIDE);
现在共享后,根本不能从我的电脑进入共享文件夹[/quote] 你手动映射网络驱动器 y: 到 \\192.168.1.103\d,输入相应用户名和密码,能打开共享文件夹吗? C:\>net help use 此命令的语法是: NET USE [devicename | *] [\\computername\sharename[\volume] [password | *]] [/USER:[domainname\]username] [/USER:[dotted domain name\]username] [/USER:[username@dotted domain name] [/SMARTCARD] [/SAVECRED] [[/DELETE] | [/PERSISTENT:{YES | NO}]] NET USE {devicename | *} [password | *] /HOME NET USE [/PERSISTENT:{YES | NO}] NET USE 用于将计算机与共享的资源相连接,或者切断计算机与共享资 源的连接。当不带选项使用本命令时,它会列出计算机的连接。 devicename 指定一个名字以便与资源相连接,或者指定要切断的设备。 有两种类型的设备名:磁盘驱动器 (D: 至 Z:) 和打印机 (LPT1: 至 LPT3:)。输入 一个星号来代替一个指定的设备 名可以分配下一个可用设备名。 \\computername 指控制共享资源的计算机的名字。如果计算机名中包含有 空字符,就要将双反斜线 (\\) 和计算机名一起用引号 (" ")括起来。计算机名可以有1 到 15 个 字符。 \sharename 指共享资源的网络名字。 \volume 指定一个服务器上的 NetWare 卷。用户必须安装 Netware 的客户服务(Windows 工作站) 或者 Netware 的网关服务 (Windows 服务器) 并使之与 NetWare 服务器相连。 password 指访问共享资源所需要的密码。 * 进行密码提示。当在密码提示符下输入密码时,密码不会显示。 /USER 指定连接时的一个不同的用户名。 domainname 指定另外一个域。如果缺省域,就会使用当前登录的域。 username 指定登录的用户名。 /SMARTCARD 指定连接使用在智能卡上的凭据。 /SAVECRED 指定保留用户名和密码。此开关被忽略,除非命令提示输入用 户名和密码。 /HOME 将用户与他们的主目录相连。 /DELETE 取消一个网络连接,并且从永久连接列表中删除该连接。 /PERSISTENT 控制对永久网络连接的使用。其默认值是最近使用的设置。 YES 在连接产生时保存它们,并在下次登录时恢复它们。 NO 不保存正在产生的连接或后续的连接;现有的连接将在下次登 录时恢复。可以使用 /DELETE 选项开关来删除永久连接。 NET HELP command | MORE 用于逐屏显示帮助。
孟如庭 2015-08-27
  • 打赏
  • 举报
回复
引用 13 楼 zhao4zhong1 的回复:
先手动映射网络驱动器、断开网络驱动器都成功后, 再在程序中参考10楼代码调用net use命令。 ru如果嫌system弹出cmd窗口不好看的话,改为
#include <windows.h>
//...
WinExec("net use y: \\\\192.168.1.103\\d password",SW_HIDE);
现在共享后,根本不能从我的电脑进入共享文件夹
赵4老师 2015-08-27
  • 打赏
  • 举报
回复
其中\\\\192.168.1.103\\d实际上是\\192.168.1.103\d即电脑192.168.1.103上有一个共享名d
赵4老师 2015-08-27
  • 打赏
  • 举报
回复
先手动映射网络驱动器、断开网络驱动器都成功后, 再在程序中参考10楼代码调用net use命令。 ru如果嫌system弹出cmd窗口不好看的话,改为
#include <windows.h>
//...
WinExec("net use y: \\\\192.168.1.103\\d password",SW_HIDE);
孟如庭 2015-08-27
  • 打赏
  • 举报
回复
引用 6 楼 kenshu 的回复:
[quote=引用 4 楼 feiyue1206 的回复:]
[quote=引用 1 楼 oyljerry 的回复:]
fopen用UNC地址。\\\\192.168.1.105


fp=fopen("\\\\ 192.168.1.103 \\d:\\1.txt","w+");


试 了 下,这 样 也 不 行。哪 里 有 错 吗[/quote]

后面的\\d:\\不对。

要看你共享名(就是你在网上邻居那里看到的名字),同时,如果需要用户名密码才有权限读写的话,需要两个函数,

WNetCancelConnection2
WNetAddConnection2

[/quote]

设置共享后,是否还要防火墙什么的,电脑A能看到电脑B,但是根本点不进去,有时候提示如下,有时候让输入账号,即使输入登录名、密码,也登录不进去,根本不知道要咋操作了。电脑是win8、win7


kenshu 2015-08-25
  • 打赏
  • 举报
回复
引用 4 楼 feiyue1206 的回复:
[quote=引用 1 楼 oyljerry 的回复:] fopen用UNC地址。\\\\192.168.1.105
fp=fopen("\\\\ 192.168.1.103 \\d:\\1.txt","w+");
试 了 下,这 样 也 不 行。哪 里 有 错 吗[/quote] 后面的\\d:\\不对。 要看你共享名(就是你在网上邻居那里看到的名字),同时,如果需要用户名密码才有权限读写的话,需要两个函数, WNetCancelConnection2 WNetAddConnection2
孟如庭 2015-08-25
  • 打赏
  • 举报
回复
引用 2 楼 xian_wwq 的回复:
[quote=引用 楼主 feiyue1206 的回复:] 局域网内,远程读写文件。比如程序运行在A电脑,读写B电脑的某些文件。有什么简单的方法吗。 我想了两种简单方法, 一种,fopen 指定的路径带IP地址,结果是打不开的。看了MSDN,感觉有这个功能,但是不知道为啥错误 fp=fopen("\\192.168.1.105\\d\\1.txt","w+"); 第二种,准备用shell命令,比如copy之类的,但是也不能带IP地址 copy "d:\\1.txt" "\\192.168.1.103\\d:\\23.txt" 如果说,在b电脑写个socket服务,A发数据到B电脑的socket服务,再有socket来完成实际的读写,肯定是可以的,但是我觉得工作量有点大,太麻烦了,有没有什么简单的方法?
如果不考虑安全问题,仅考虑数据共享 可以使用net share, 将其他机器的文件夹或者磁盘映射到本地磁盘 这样就相当于操作本地文件 使用netshare 需要注意,如果机器重启,net share有时就失效了 最好把相关操作放到bat里面,机器启动时,自动执行 详细内容百度下 [/quote] 需要手动操作的话,略不合适?有更好的方法吗
孟如庭 2015-08-25
  • 打赏
  • 举报
回复
引用 1 楼 oyljerry 的回复:
fopen用UNC地址。\\\\192.168.1.105
fp=fopen("\\\\ 192.168.1.103 \\d:\\1.txt","w+");
试 了 下,这 样 也 不 行。哪 里 有 错 吗
shenyi0106 2015-08-25
  • 打赏
  • 举报
回复
需要共享磁盘文件,否则无法读取
xian_wwq 2015-08-25
  • 打赏
  • 举报
回复
引用 楼主 feiyue1206 的回复:
局域网内,远程读写文件。比如程序运行在A电脑,读写B电脑的某些文件。有什么简单的方法吗。 我想了两种简单方法, 一种,fopen 指定的路径带IP地址,结果是打不开的。看了MSDN,感觉有这个功能,但是不知道为啥错误 fp=fopen("\\192.168.1.105\\d\\1.txt","w+"); 第二种,准备用shell命令,比如copy之类的,但是也不能带IP地址 copy "d:\\1.txt" "\\192.168.1.103\\d:\\23.txt" 如果说,在b电脑写个socket服务,A发数据到B电脑的socket服务,再有socket来完成实际的读写,肯定是可以的,但是我觉得工作量有点大,太麻烦了,有没有什么简单的方法?
如果不考虑安全问题,仅考虑数据共享 可以使用net share, 将其他机器的文件夹或者磁盘映射到本地磁盘 这样就相当于操作本地文件 使用netshare 需要注意,如果机器重启,net share有时就失效了 最好把相关操作放到bat里面,机器启动时,自动执行 详细内容百度下
孟如庭 2015-08-25
  • 打赏
  • 举报
回复
引用 8 楼 kenshu 的回复:
[quote=引用 7 楼 feiyue1206 的回复:] 什么意思?B电脑的相应目录必须设置共享,才能使用fopen远程吗?
如果存在一个简单的C函数, fp=fopen("\\\\我想黑谁就黑谁\\c:\\1.txt","w+"); 那还需要黑客做什么?[/quote] 恩,我以为局域网能做到呢
oyljerry 2015-08-25
  • 打赏
  • 举报
回复
fopen用UNC地址。\\\\192.168.1.105
赵4老师 2015-08-25
  • 打赏
  • 举报
回复
system("net use y: \\\\192.168.1.103\\d password");
f=fopen("y:1.txt","r");
...
fclose(f);
system("net use y: /delete");
阿源是少年 2015-08-25
  • 打赏
  • 举报
回复
A端跑Service,B端去请求才是比较可取的办法,不觉得这个有好大工作量
kenshu 2015-08-25
  • 打赏
  • 举报
回复
引用 7 楼 feiyue1206 的回复:
什么意思?B电脑的相应目录必须设置共享,才能使用fopen远程吗?
如果存在一个简单的C函数, fp=fopen("\\\\我想黑谁就黑谁\\c:\\1.txt","w+"); 那还需要黑客做什么?
孟如庭 2015-08-25
  • 打赏
  • 举报
回复
引用 6 楼 kenshu 的回复:
[quote=引用 4 楼 feiyue1206 的回复:] [quote=引用 1 楼 oyljerry 的回复:] fopen用UNC地址。\\\\192.168.1.105
fp=fopen("\\\\ 192.168.1.103 \\d:\\1.txt","w+");
试 了 下,这 样 也 不 行。哪 里 有 错 吗[/quote] 后面的\\d:\\不对。 要看你共享名(就是你在网上邻居那里看到的名字),同时,如果需要用户名密码才有权限读写的话,需要两个函数, WNetCancelConnection2 WNetAddConnection2 [/quote] 什么意思?B电脑的相应目录必须设置共享,才能使用fopen远程吗?

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧