gpt4 book ai didi

java - 使用 SMB 尝试在复制后删除文件

转载 作者:行者123 更新时间:2023-11-30 06:22:47 26 4
gpt4 key购买 nike

我在删除方法上收到以下错误:

jcifs.smb.SmbException:进程无法访问该文件,因为该文件正在被另一个进程使用。

如何确保文件没有被锁定以便可以将其删除?

我的代码:

try{

NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(attachmentRoot_DOMAIN,attachmentRoot_ID,attachmentRoot_PW);
NtlmPasswordAuthentication auth2 = new NtlmPasswordAuthentication(drawings_DOMAIN,drawings_ID,drawings_PW);

SmbFile fromfile = new SmbFile("smb:" + dldf.getDldrawingfile(), auth, SmbFile.FILE_SHARE_READ|SmbFile.FILE_SHARE_WRITE|SmbFile.FILE_SHARE_DELETE);

SmbFile toFile = new SmbFile(drawings_PATH + new DrawingNumberSubDirectory(dldf.getDrawingnumber()).getDrawingnumbersubdirectory() + "/" + dldf.getShortfilename() + ".PDF", auth2);
fromfile.copyTo(toFile);


fromfile.delete();
}
catch(Exception e){
System.out.println("DocsVisionDrawingList: AcrobatRotateAndMerge_2: " + e);
e.printStackTrace();
}

最佳答案

SMB 协议(protocol)不会向您提供此信息。您可以做的是使用创建请求中的delete on close 位将文件标记为删除,这是 SMB 功能。

我不知道jCifs是否有这个功能,有几个java SMB客户端支持这个问题。 (甚至不仅支持SMBv1)

关于java - 使用 SMB 尝试在复制后删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47777382/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com