linux下访问并读写windows端共享文件夹

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;
}

猜你喜欢

转载自blog.csdn.net/maitianpt/article/details/83033971
今日推荐