Csharp/C#教程:WinSCP .NET程序集 – 如何在创建目录后设置文件夹权限?分享


WinSCP .NET程序集 – 如何在创建目录后设置文件夹权限?

我正在构建一个网站,我希望当用户注册时,在SFTP服务器上创建一个目录并在该目录中放入一个新文件

我正在使用WinSCP .NET程序集,并编写C#。

我注意到你只能在方法中设置权限: Session.PutFiles而不是在方法中: Session.CreateDirectory

在我创建目录并将文件放入其中之后,我无法访问该文件,因为我没有权限 – 我正在使用完整的URL访问该文件

我该如何访问该文件?

PS。 当我手动更改目录权限时,我可以访问该文件。

请注意,这回答了您在创建目录时如何设置权限的问题。 但问题的根本原因是服务器设置的默认权限是错误的。 服务器不应使用默认权限,以便您无法访问自己刚刚创建的目录/文件!

当创建目录或之后使用WinSCP .NET程序集修改目录时,目前无法直接设置权限。
请参阅https://winscp.net/tracker/1075

你可以破解它如下:

 string directoryName = "mydir"; string directoryPath = "/home/username/" + directoryName; string tempPath = Path.Combine(Path.GetTempPath(), directoryName); Directory.CreateDirectory(tempPath); try { TransferOptions options = new TransferOptions(); options.FilePermissions = new FilePermissions { Octal = "755" }; session.PutFiles(tempPath, directoryPath, false, options).Check(); } finally { Directory.Delete(tempPath); } 

您甚至可以不创建空的临时目录。 只需选择任何目录,例如您的帐户配置文件文件夹的目录,并使用文件掩码仅包含此目录,以防止上载目录和子目录中的文件。 还要在目标路径中使用所需远程目录的显式名称,以将上载的目录“重命名”为您想要的名称。

上述就是C#学习教程:WinSCP .NET程序集 – 如何在创建目录后设置文件夹权限?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1027680.html

(0)
上一篇 2022年1月10日
下一篇 2022年1月10日

精彩推荐