linux 下获取U盘路径

本文介绍了如何使用Linuxshell脚本中的`cat/proc/mounts|cut-d-f2|grepmedia`命令获取USB设备挂载在media目录下的路径,并通过`redirect_system`函数将结果重定向至临时文件。`GetDownload_USB_path`函数负责处理这些操作并返回U盘路径。
摘要由CSDN通过智能技术生成

linux会将usb设备挂载在media下,逻辑就是先查看所有挂载,将挂载里面含有media的路径保存到一个文件里,再去文件里读取u盘路径

查找对应的shell 指令为 : cat /proc/mounts | cut -d  ' ' -f 2 | grep \"media\"

该指令为先查找 所有挂载.然后将查找的第二个字段截取出来,再在里面筛选 media字段

然后将查找到的u盘路径 写到某个文件里

全部函数如下:

QString setplay::GetDownload_USB_path()
{
        QString usb_path,tmp;
        redirect_system("cat /proc/mounts | cut -d  ' ' -f 2 | grep \"media\"","/root/tmp_usb_name");
  
        QFile file("/root/tmp_usb_name");                        //---打开文件
        if (file.open(QIODevice :: ReadWrite))   //  以只读的方式打开
        {
                char cBuf[128];
                qint64 LineLen = file.readLine(cBuf, sizeof(cBuf)); //---读取文本文件的一行
                if (-1 != LineLen)                          //---读取成功,将返回读取的字节,读取失败,将返回-1
                {
                        qDebug() << cBuf;                 //--输出读取的文本文件内容
                        usb_path =  QString(cBuf);
                        int length=usb_path.length();
                        tmp = usb_path.left(length-1);//实际读出来的U盘名称总是多一个空格在右边。
                        QString qinfo;
                        qinfo=QString("tmp=%1,usb_path=%2").arg(tmp).arg(usb_path);
                        LOGGER->Log(LOGGER_INFO,"%s",qinfo.toLatin1().data());
                }
        }
        file.flush();
        file.close();
        system("sudo rm -rf /root/tmp_usb_name");

        return tmp;
}
#define CMD_STR_LEN 1024 
int redirect_system(char* cmdstring, char* tmpfile)
 {
         char cmd_string[CMD_STR_LEN];
         sprintf(cmd_string, "%s > %s", cmdstring, tmpfile);
         return system(cmd_string);
 }

第一个函数返回u盘的路径,第二个函数将查出来的u盘路径重定向到指定文件

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值