linux获取U盘label

ls -l /dev/disk/by-label执行后的如下
[root@localhost ~]# ls -l /dev/disk/by-label
total 0
lrwxrwxrwx 1 root root  9 Dec 29 11:14 CTL\xc7\xc7\xd6\xce27 -> ../../sdb   
#CTL\xc7\xc7\xd6\xce27是u盘的名字需要转成汉字
     	  StringBuilder buff=new StringBuilder("lrwxrwxrwx 1 root root  9 Dec 29 11:14 CTL\\xc7\\xc7\\xd6\\xce27 -> ../../sdb");
            String labelStr= buff.reverse().toString().split(">-")[1].trim().split(" ")[0];
            StringBuilder label=new StringBuilder(labelStr);
            label.reverse();
            StringBuilder buf=new StringBuilder();
            while(label.length()>0){
                if(label.charAt(0)!='\\'){
                    buf.append(label.charAt(0));
                    label.deleteCharAt(0);
                }else{
                    byte[]  bytes=new byte[2];
                    //当前未处理字符串中第一个\x位置
                    int index1=label.indexOf("\\x");
                    //当前未处理字符串中第二个\x位置
                    int index2=label.indexOf("\\x",index1+2);//index1=0所以得从第三个开始数
                    try {
                        String first=label.substring(index1, index2).replace("\\x", "");
                        label.delete(0, index2);
                        bytes[0]=(byte)Integer.parseInt(first,16);
                        //当前未处理字符串中第二个\x位置
                        index2=label.indexOf("\\x",index1+2);//index1=0所以得从第三个开始数
                        if(index2==-1||index2>4){
                            index2=4;
                        }
                        String two=label.substring(index1, index2).replace("\\x", "");
                        label.delete(0, index2);
                        bytes[1]=(byte)Integer.parseInt(two,16);
                        buf.append(new String(bytes,"gbk"));
                    } catch (Exception e) {
                        label.delete(0, 4);//去除一位16进制
                        buf.append("◇");
                        System.out.println("16进制转汉字失败:"+e);
                    }


                }
            }




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值