我还没有开始这个 - 只是想获得一些想法,但是我可以使用 C# Windows 服务访问网络中 Linux 机器上的目录和文件吗?我读过 this和 this ,但到目前为止,他们只是试图获取目录中的文件。我的目标是:
- 读取文件是否存在
- 我们希望文件是 zip 文件,所以我们应该在 Linux 机器的目录中进行解压缩
- Windows 服务部署在带有
FileSystemWatcher
的 Windows 机器上,它将监视 Linux 目录中的文件是否已创建
我已经阅读了一些有关 C# 的 SSH 和 FTP 库的内容,但这不只是为了获取文件吗?我想与目录中的文件本身进行交互。
任何有用的链接或答案将不胜感激。
更新:
我认为要求之一是不使用 Active Directory - 这取消了 Samba 的使用。
最佳答案
Samba 设置指南
首先更新服务器并安装Samba:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install samba
然后wget这个文件:Samba config . 使用您最喜欢的文本编辑器(即 vi 上的 nano)打开它。记得 SUDO 编辑!!!
找到以下行(并更改参数以满足您的需要):
[share]
comment = A share
path = /path/to/folder
browsable = yes
guest ok = no
read only = no
create mask = 0755
comment 是对共享的描述。
path 是共享文件夹的路径
browsable = yes 使共享及其内容可供经过身份验证的用户浏览
guest ok = no 禁用匿名登录
read only = no 启用编辑和重命名文件
create mask = 0755 设置新文件的默认权限
然后创建用于访问共享的用户(并设置密码):
sudo useradd share
sudo passwd share
sudo smbpasswd -a share
sudo smbpasswd -e share
将你的 smb.conf 移动到/etc/samba/smb.conf
sudo mv smb.conf /etc/samba/smb.conf
重新加载 Samba 配置:
sudo /etc/init.d/samba reload
或者如果这不起作用:
sudo smbd reload
完成!
现在您可以使用 \\serverAddress\share
访问 windows 上的共享
用户名是WORKGROUP\share
OR linuxServerHostname\share
密码是你上面设置的密码。
您现在可以通过转到资源管理器并使用“映射网络驱动器”向导将共享作为网络驱动器映射到 Windows。勾选“使用不同的凭据连接”复选框。您也可以使用 C# 映射网络驱动器。
共享中的所有文件和文件夹现在(映射时)充当本地文件。
关于c# - .net - 使用 C# Windows 服务访问 Linux 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30883204/