Linux 和 Csharp,检查 Linux 中是不是不存在文件/文件夹,如果存在,则通过 Csharp SSH 运行 MKDIR - [关闭]

Posted

技术标签:

【中文标题】Linux 和 Csharp,检查 Linux 中是不是不存在文件/文件夹,如果存在,则通过 Csharp SSH 运行 MKDIR - [关闭]【英文标题】:Linux and Csharp, Check If File/Folder Doesn't Exist in Linux, if so, run MKDIR via Csharp SSH - [closed]Linux 和 Csharp,检查 Linux 中是否不存在文件/文件夹,如果存在,则通过 Csharp SSH 运行 MKDIR - [关闭] 【发布时间】:2016-05-21 16:58:27 【问题描述】:

使用 SSH.Net 我想做以下事情:通过 C# 和各种 ssh 包和/或 winscp 库创建一个命令来检查文件是否存在于 Linux 机器上,以及文件是否不存在于linux机器,然后它会创建它们,我喜欢编程的教育方面,所以我正在改进自己,对于没有完整地写出问题,我深表歉意。

private void TestCommmand(string ip, int port, string uname, string pw)

    // [1]
    SshClient cSSH = new SshClient(ip, port, uname, pw);
    cSSH.Connect();
    SshCommand x = new SshCommand();
    // [2] here is where the Check needs to happen
    //
    if (condition == true)
    
        x = cSSH.RunCommand(" mkdir /var/www/html/app/cs");
    
    else // if condition is false
    
        cSSH.Disconnect();
        cSSH.Dispose();
    
    //

【问题讨论】:

那么你的问题是什么?听起来您只是希望我们为您编写代码。你卡在哪一部分? 这就是提问的重点,对吧?我只询问如何检查文件夹是否存在,如果不存在,请运行 mkdir。就是这样。 在此处查看我的答案:***.com/questions/265953/… 它适用于通过 ssh 与其他任何地方一样检查 linux 系统。只需致电mkdir、maybe with the -p argument added 似乎该命令具有您可以检查的 .Result 属性。我以前从未使用过该库,但您对此进行一些研究似乎会有很长的路要走。 这里可以给你一些亮点dotnetperls.com/file-exists 【参考方案1】:

这是我不久前遇到的,所以相信我在这里......

让我们看看下面这个小家伙:

if(condition == true) 

在某种程度上,您已经在回答您的问题,只是不理解语法。 (检查一下

using System;
using System.IO;

namespace ***QA

    class Program
     

         static void Main(string[] args)
         
            if(File.Exists(@"C:\Exercise\Derp\"))
             
               DoWork();
             
             else
             
               Console.Out.Writelne("Wrong kid died");
               Console.Write("Enter a key to exit");
               Console.Read();
             

            private static void DoWork()
            

              //-- if you get to this point then check out that,
             //    NuGet pkg you're working with (WinSCP) and proceed! :) 
            
         

      
 

在进入第三方程序集或库/其他任何东西之前,我认为您需要首先创建一个简单的控制台应用程序来在您的机器上查找文件。

创建我刚才在代码中描述的文件夹和“DoWork();”

干杯^_^

【讨论】:

这就是我需要的东西!感谢您花时间为我提出正确的语法,我不接受这个作为答案,因为这是我正在寻找的,我知道我需要做什么,只是想不出语法,所以为之欢呼。 没问题我的朋友 :)【参考方案2】:

如果目录不存在,您可以使用mkdir -p /var/www/html/app/cs 创建目录及其父目录。

只要您有权创建第一个不存在的目录,该命令就会成功。如果只存在/var/www,它将创建html,然后是app,然后是cs。如果/var/www/html/app/cs 存在,它什么也不做。

所以你的代码就是:

private void TestCommmand(string ip, int port, string uname, string pw)

    SshClient cSSH = new SshClient(ip, port, uname, pw);
    cSSH.Connect();
    SshCommand x = new SshCommand();
    x = cSSH.RunCommand("mkdir -p /var/www/html/app/cs");
    /// .. Continue with your work ...

请注意,您应该在几乎每一步之后检查错误:SSH 连接可能会失败,命令可能会因权限而失败,等等...

【讨论】:

谢谢,正是我需要的。我明白了这一点。干杯。

以上是关于Linux 和 Csharp,检查 Linux 中是不是不存在文件/文件夹,如果存在,则通过 Csharp SSH 运行 MKDIR - [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何检查文件是不是在 Linux 中打开和/或正在编辑

Linux中如何检查开放端口

linux下怎么检查串口号

检查linux中消息队列和共享内存状态的命令?

Linux中检查内存使用情况的命令

Linux中检查内存使用情况的命令