Windows端(win8.1):
右键点击文件夹-->共享-->特定用户-->everyone-->添加-->权限改为“读取/写入”-->点击共享
linux端(ubuntu16.04):
简介:Windows共享文件夹使用的协议是SMB/CIFS。因而可以使用Linux下的smbclient在命令行中进行操作。
如果想更方便地在图形桌面环境使用,则可以使用mount.cifs指令,将共享文件夹挂载到指定位置,然后就可以像访问一个本地文件夹一样访问了。
步骤:
1.mount挂载,首先创建被挂载的目录:
mkdir sharetest
2.安装mount.cifs需要的cifs-utils软件包
sudo apt install cifs-utils
3.查看某个用户uid,uid用于实现对共享文件夹的读写操作
id -u [username]
注:这里的username就是本机的名称,比如我的linux计算机名称是abc,则查看代码为
id -u abc
运行结果为:1001
4.使用如下指令挂载共享文件夹
sudo mount.cifs //[address]/[folder] [mount point] -o user=[username],passwd=[pw],uid=[UID]
注:这里的address为Windows端的IP地址,folder为Windows共享的文件夹的名称,mount point为linux的挂载文件夹地址,username为Windows端的计算机的名称,passwd为Windows端计算机的开机密码
所以我的测试代码为:
sudo mount.cifs //192.168.3.69/share /home/abc/sharetest -o user=def,passwd=1234,uid=1001
5.至此,打开本地的sharetest文件夹即可实现对共享文件夹的操作。
6.最后如果要卸载共享文件夹,使用umount即可::
sudo umount [mount point]
7.测试代码(读取共享文件夹里面的图片,显示图片,并以新命名保存到共享文件夹中):
#include<iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
//【1】读取原始图像
Mat srcImage;
srcImage = imread("1.jpg");//读取共享文件夹中的图片
//【2】检查是否读取图像成功
if (srcImage.empty())
{
cout << "读取图像有误,请重新输入正确路径!\n";
return -1;
}
//【3】创建具有图像名称的窗口
namedWindow("原始图", WINDOW_AUTOSIZE);
//【4】在窗口中显示图片
imshow("原始图", srcImage);
//【5】保存图像
imwrite("/home/abc/sharetest/2.jpg", srcImage);//重新保存图片到共享文件夹中
//【6】保持等待状态
waitKey();//括号里可以填任意正整数,意味着,图像显示的毫秒时间
return 0;
}