配置文件
smb.url=smb://「user」:「密码」@192.168.xx.xx/test
配置类
package com.chris.nfsclient.config;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
@Configuration
@Data
public class SmbClientConfig {
@Value("${smb.url}")
private String url;
}
客户端实现
package com.chris.nfsclient.service.impl;
import com.chris.nfsclient.config.SmbClientConfig;
import jcifs.smb.SmbException;
import jcifs.smb.SmbFile;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.net.MalformedURLException;
@Service
@Log4j2
public class SmbClientService {
@Resource
private SmbClientConfig smbClientConfig;
public SmbFile getSmb(String path){
try {
return new SmbFile(smbClientConfig.getUrl() + path);
} catch (MalformedURLException e) {
log.error("Smb get error {}", e.getMessage());
}
return null;
}
public SmbFile[] getFileList(String path) {
SmbFile smb = getSmb(path);
try {
return smb.listFiles();
} catch (SmbException e) {
log.error("get smb file list error {}", e.getMessage());
}
return null;
}
public boolean createFile (String parent, String fileName) {
SmbFile smb = getSmb(parent+"/"+fileName);
try {
if (smb.exists()) {
log.info("smb file exists {}", smb.getName());
return false;
}else {
smb.createNewFile();
return true;
}
} catch (SmbException e) {
log.error("create error {}", e.getMessage());
return false;
}
}
}