关于c#: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 -

使用ssh.net,我想做以下事情:通过c和各种ssh包和/或winscp库来检查文件是否存在于Linux计算机上,如果文件不存在于Linux计算机上,那么它将创建这些文件,我喜欢编程的教育方面,因此我正在自我改进,对此我深表歉意。把问题写下来。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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();
    }
    //
}


这是我不久前遇到的事情,相信我…

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

1
if(condition == true)

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System;
using System.IO;

namespace StackOverflowQA
{
    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();"中描述的文件夹。

欢呼声^ ^


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

只要您有创建不存在的第一个目录的权限,该命令就会成功。如果只有/var/www存在,它将创建htmlappcs。如果/var/www/html/app/cs存在,它将无济于事。

所以你的代码就是:

1
2
3
4
5
6
7
8
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连接可能会失败,命令可能会由于权限而失败,等等…