【问题标题】:How to access Linux directories/files from a Windows Service using C#如何使用 C# 从 Windows 服务访问 Linux 目录/文件
【发布时间】:2010-05-01 00:04:34
【问题描述】:

我有一个 C# Windows 服务,它需要访问 Linux 计算机以获取特定目录中的文件列表。使用什么 .NET 3.5SP1 方法可以让我做到这一点?

谢谢。

【问题讨论】:

  • samba 文件共享或 nfs?
  • 我的客户已经有一个映射到 Linux 机器的驱动器号(通过“网络使用”)。实际上通过 Windows 资源管理器访问该文件夹没有问题。但是,如您所知,Window 服务无权访问驱动器映射。我认为有一个 Windows 网络 API 可以用来传递登录凭据以读取 Linux 文件系统。

标签: c# .net windows network-programming


【解决方案1】:

您必须在 Linux 机器上创建一个 Samba (SMB) 或 NFS 共享,该共享可从运行您的应用程序的 Windows 机器访问。

然后,您可以在 .NET 中使用用于处理文件/目录的标准工具来处理这些文件。

如 cmets 中所述,您还可以使用标准 FTP 库,这需要在您的 Linux 机器上配置 FTP 服务器。 SFTP 也是一种选择……但需要 .NET 端的第三方库。

【讨论】:

  • S/FTP 也可以做到这一点(假设所说的 linux 机器正在运行这些服务器之一)。 FTP 是内置的,SFTP 需要一个第三方库。
  • S/FTP 不是客户端的选项。
  • 我刚刚找到了这个链接:stackoverflow.com/questions/295538/…。 (不知道为什么我之前的搜索没有显示出来。)
【解决方案2】:

您好,您可以查看我的开源项目http://code.google.com/p/nekodrive 您可以直接使用 NekoDrive.NFS c# 库,该库包装了我的 V2 e V3 NFS 协议(V4.1 即将推出)实现。它不支持完整协议,但它适用于基本的浏览/下载/上传功能..

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2021-12-26
    • 2010-10-24
    • 2010-09-16
    • 1970-01-01
    • 2011-03-14
    • 2017-05-21
    • 2017-09-14
    • 2012-04-13
    • 1970-01-01
    相关资源
    最近更新 更多