package com.mes.common; import jcifs.smb.NtlmPasswordAuthentication; import jcifs.smb.SmbFile; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; public class SmbTool { public static String USER_DOMAIN=null;//共享计算机ip "192.168.3.102"; public static String USER_ACCOUNT=null;//登录共享文件夹 用户名 "aaa",如果是共享是无密码模式 此处值设置为 null; public static String USER_PWS=null;//登录共享文件夹 密码"guoyujie",如果是共享是无密码模式 此处值设置为 null; /** * test 测试示例 */ private void test() { int index= SmbTool.getDescriptionIndex("log","P20240522");//输入切割机共享文件夹名字、工程号,返回当前工程正在切割的版图号 System.out.print(index); } /** * smbGetall 返回指定目录下的文件名字 * @param GoalUrl 远端目录("smb://192.168.2.100//ceshi//") */ public static String[] smbGetallFilenames(String GoalUrl) { NtlmPasswordAuthentication auth=new NtlmPasswordAuthentication(USER_DOMAIN,USER_ACCOUNT,USER_PWS); List filenames=new ArrayList<>(); try { SmbFile remoteFile = new SmbFile(GoalUrl,auth); if (remoteFile == null) { return filenames.toArray(new String[]{}); } if (remoteFile.exists()) { SmbFile[] listFiles = remoteFile.listFiles(); for(int i = 0; i < listFiles.length; i++) { filenames.add(listFiles[i].getName()); } } } catch (Exception e) { e.printStackTrace(); } return filenames.toArray(new String[]{}); } /** * getDescriptionIndex 根据工程号,返回当前正在切割的版图号 * @param folderName 共享文件夹名字 * @param project_no 工程号 */ public static int getDescriptionIndex(String folderName,String project_no) { SimpleDateFormat formatter= new SimpleDateFormat("yyyyMMdd"); Date date = new Date(System.currentTimeMillis()); System.out.println(formatter.format(date)); String[] getfilenames= smbGetallFilenames("smb://"+USER_DOMAIN+"/"+folderName+"/"+formatter.format(date)+"/"); for (int i = 0; i < getfilenames.length; i++) { String[] splitvalues= getfilenames[i].split("_"); if (splitvalues.length>=3&&splitvalues[1].trim().equals(project_no)) { String[] indexstr= splitvalues[2].trim().split("\\."); if (indexstr.length>1) { return Integer.parseInt(indexstr[0]); } } } return -1; } }