使用C#从远程PC检索分区/目录/文件夹/文件的列表
本文关键字:目录 文件夹 文件 列表 分区 检索 PC 使用 | 更新日期: 2023-09-27 18:35:06
我正在尝试开发一种基于 Windows 的桌面软件,我想在其中列出位于同一网络中远程 PC 上的所有可访问分区/目录/文件夹/文件。我已经成功地编程为如何通过列表中的 IP/名称检索远程 PC[众所周知的下拉列表/组合框]。接下来,一旦我选择了特定的远程PC,我需要检索该远程PC上的分区/目录/文件夹/文件,并在网格视图或自定义WPF控件上显示它们。
注意:我直接获取了仅通过IP/名称即可在同一网络上访问的PC列表,我还想知道我是否可以获取每台PC的元信息,因为它在哪个操作系统上运行[即Microsoft Windows 8 Pro或Mac OSX 10或Ubuntu 13.04服务器]以及什么架构[即x64或x86]。
注意:远程PC可以运行任何供应商的任何操作系统,即Microsoft,Apple,Linux。
注意:虽然可能无法从共享文件夹以外的基于MacOSX或Linux的机器中获取所有分区/目录/文件夹/文件的列表,但我想知道如何获取在MacOSX或基于Linux的PC上共享的文件夹/文件列表。
这个 SO 问题建议如何枚举远程共享。这适用于Windows计算机,并且应该适用于具有Samba共享的Linux/OS X。我不知道您如何使用 C# 枚举远程 NFS/AFP 共享。
要检索目录/文件,您需要访问共享上文件的权限。然后,您可以像扫描本地文件系统一样扫描它。这应该适用于所有技术。
列出磁盘分区需要访问远程计算机上的 WMI (Windows)。我不知道你如何在 Linux 和 OS X 上枚举远程分区,除了使用 ssh 或类似的远程应用程序。
提取操作系统版本是特定于操作系统的。同样,不确定如何使用 Linux 和 OS X 进行远程操作(例如 nmap 使用 TCP/IP 堆栈指纹识别来识别远程计算机,这可能会被击败)
我不确定你需要这个做什么,但我强烈建议你安装一个标准且经过良好测试的监控系统,而不是试图自己动手。