使用java中的smb文件路径获取Windows共享数据的文件属性

时间:2017-01-17 09:23:25

标签: java samba jcifs file-attributes

我正在研究忽略由" Microsoft"创建的文件的逻辑。将C:\驱动器抓取为使用CIFS共享(" smb:// hostname:445 / sharedfoldername")。

我之前的帖子link使用了建议的解决方案(解决方法是使用PEParser代码。当我在同一台Windows机器上时工作正常,但当我尝试在ubuntu上运行我的应用程序时在那里我试图抓取共享的c:\驱动器 - 如果我没有使用逻辑来忽略微软文件,它的爬行没有任何问题。但是当我应用它时,我找不到我想忽略的Microsoft文件。

任何人都可以建议从ubuntu / linux机器获取文件的Windows属性的任何解决方案吗? 下面的代码块返回Windows的公司名称值 - 我想从smb路径获得。

        PE pe = null;
        try {
            pe = PEParser.parse(path);

            ResourceDirectory rd = pe.getImageData().getResourceTable();

            ResourceEntry[] entries = ResourceHelper.findResources(rd, ResourceType.VERSION_INFO);
            for (int i = 0; i < entries.length; i++) {
                byte[] data = entries[i].getData();
                VersionInfo version = ResourceParser.readVersionInfo(data);

                StringFileInfo strings = version.getStringFileInfo();
                StringTable table = strings.getTable(0);
                for (int j = 0; j < table.getCount(); j++) {
                    String key = table.getString(j).getKey();
                    String value = table.getString(j).getValue();
                    if (key.equalsIgnoreCase("companyname")) {
                        if (value.contains("Microsoft")) {
                            return true;
                        } else {
                            return false;
                        }
                    }
                }
            }
        } catch (Exception e) {
            log.debug("Exception caught which checking for Microsoft File " + e.getMessage());
        }

0 个答案:

没有答案