- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 JCIFS 可以轻松检查文件是否存在:
import jcifs.smb.*;
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("domain", "username", "password");
SmbFile file = new SmbFile("smb://server/filepath", auth);
if( file.exists() ) { ... }
现在假设您想将所有这些放入循环中并检查是否存在各种文件。我假设在这种情况下 new SmbFile("smb://server/filepath", auth);
将为每个文件建立一个新连接。我说得对吗?
所以我的问题是:通过 SMB 测试文件是否存在的资源占用最少的方法是什么?
我在考虑让file
指向SMB根目录,然后使用file.listFiles(java.lang.String wildcard)
检查文件是否存在。但问题是 listFiles
不能递归工作。我可以包装它并使它递归,但这并不干净。
最佳答案
回应:
new SmbFile("smb://server/filepath", auth);
will set up a new connection for each file
直到您实际尝试对服务器执行某些操作(例如检查是否存在),连接才会建立。但是,它使用相同的连接与服务器通信以进行操作。 SmbTransport
类是处理这个的东西。您可以使用 wireshark 或任何其他监控工具来查看操作是否使用与服务器的相同连接。
因此,为了响应“检查a 文件是否存在的资源占用最少的方法”,您检查它是否存在。
如果您正在检查多个文件,并且您已经知道它们的名称,那么只检查是否存在仍然是最有效的方法。
如果您不知道文件的名称,并且您使用 listFiles
(和子目录下降),那么您将从服务器请求更多的数据,例如项目的每个条目属性,无论它们是否是目录,目录有数百个,也许数千个条目,这可能相当于在遍历树时要缓存的很多数据。
关于java - 重用 JCIFS SMB 连接来检查各种文件是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33119135/
我正在尝试使用 JCIFS 将一些远程文件复制到本地驱动器,在 Java 中。 远程机器在域内。本地机器不在域中。 下面的代码有效,但它真的很慢(700Kb 需要 2 分钟......而且我有很多 M
我必须更新使用适用于 Windows Server 2012 的 JCIFS 的旧文件共享软件。出于安全目的,我们必须禁用 SMB 1.0/CIFS 兼容性。有谁知道可以在 Java 中使用的 JCI
在下面的代码语句中: SmbFileInputStream din==new SmbFileInputStream(src); 我正在尝试创建一个 SmbFileInputStream 对象。如果 S
在 Mac 上,我有一个共享文件夹 ~\Documents。有两个子文件夹:Data 和 Data_2011,前者包含过去几年的文件文件夹,后者包含指向 Data 文件夹中自 2011 年 1 月 1
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
要读取 R 中的文件,我通常会执行如下操作: read.csv('/Users/myusername/myfilename.csv') 但是,我正在尝试读取位于远程服务器(Windows SMB/CI
我正在尝试通过 JCIFS 访问公司网络中的共享文件夹。但是当我尝试列出共享文件夹下的文件时,它会抛出 SmbException,如下所示, jcifs.smb.SmbException: 0xC00
我正在尝试将 jar 文件复制到 Windows 共享文件夹,并且使用 smb 来执行此操作,但出现以下错误。还有其他方法可以复制文件吗? String user = "abc"; S
如何将 Mplayer 移植到 iOS?并使其支持 SMB? 我构建了ffmpeg,但另一件事是我不知道如何使这个支持smb。 我想要的是在 iOS 上开发一个支持 smb 的播放器。 最佳答案 我在
我知道 smbclient 不允许输出重定向,但是否有任何解决方法可以将输出输出到文本文件或标准文件? 最佳答案 你试过这个吗: $ smbclient -U USER%PASSWORD //IPTO
命令行的mac上的“连接到服务器”等效于什么? 我想自动化这个过程,而不是每次需要连接到服务器时都调用对话框。 最佳答案 有多种方法可以连接到远程服务器! 我假设您有在 Windows 操作系统上运行
我正在寻找一种在 SMB 远程共享上检索比某个日期/时间更新的文件的方法,所有这些都在 Windows 下工作。我一直在使用DirectoryInfo.EnumerateFiles() ,并在返回时进
我有一个文件存储在服务器中,路径如下:\\myserver\folder\myfile.txt 如何将此 SMB 地址放入带有超链接的单元格中? Hyperlink link = createHelp
在 PowerShell 中: PS> (Get-SmbConnection)[0].Encrypted 我如何在 C# 中执行此操作? 最佳答案 这是一个 WMI 方法。要在 C# 中做到这一点,您
我在删除方法上收到以下错误: jcifs.smb.SmbException:进程无法访问该文件,因为该文件正在被另一个进程使用。 如何确保文件没有被锁定以便可以将其删除? 我的代码: try{
我正在开发一个 Android 应用程序,它可以在 Windows PC 上写入和读取文件 (*.txt)。该应用程序连接到 WiFi 网络并使用 SMB。当网络有互联网连接时,该应用程序运行良好。当
是否可以使用 jcifs 列出网络上所有可用的 smb 服务器?我尝试了另一篇将 smb:// 传递给 SmbFile 构造函数的建议,但没有给我任何结果。而我能够传递 smb://username:
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我在 Android SDK 中使用 Smb。 我有下一个代码: public AuthListFiles() throws Exception { 1 SmbFile file = n
我一直在尝试找到一种通过 swift 2 和 Xcode 7 连接到我的网络驱动器的方法。我可以连接到我的桌面或文档目录,但不能连接到我的服务器。我玩过 NSString/NSURL 等但无济于事。以
我是一名优秀的程序员,十分优秀!