【问题标题】:Check if directory mounted with .NET检查目录是否使用 .NET 挂载
【发布时间】:2019-05-14 07:34:30
【问题描述】:

我想在检查目录是否已挂载时编写代码(并根据答案做一些事情)。

我在 bash 中看到了一些解决方案,它们使用类似:

if mount | grep /mnt/md0 > /dev/null; then % Do something

有没有办法在 .NET 中执行相同的过程? 或者,检查服务器是否已在 fstab 上注册以进行挂载?

谢谢。

【问题讨论】:

  • “已安装”是什么意思?这在 .NET 或 Windows 中没有任何意义。只有在 Linux 上使用 .NET Core 才有意义
  • 在这两个操作系统中,您都可以使用Directory.Exists 检查目录是否存在。检查服务器和安装的网络驱动器或网络共享是特定于操作系统的
  • 是的,当然,我在 Linux 操作系统上使用它。我不想知道本地是否存在目录。我想检查是否挂载了远程目录。
  • 您想了解服务器吗?或者只是文件夹是否存在?确定文件夹是否存在后,您想做什么?我怀疑您的实际问题有所不同,答案取决于您实际想要做什么。当您可以使用 Directory.Exists 时,为什么还要询问坐骑?在问题本身中说明您想要什么,并使用适当的标签。
  • @shaniklein 在问题本身中解释您想要做什么并发布所有相关信息。不要强迫人们猜测或试图从 cmets 中提取信息。至于可能,试试看。 Windows 10 有一个 Linux 子系统。

标签: c# linux .net-core


【解决方案1】:

老实说,我相信您可以检查目录是否存在并根据结果采取措施,但是为了回答您的问题,您可以尝试使用DriveInfo 类来获取计算机中安装的所有驱动器并比较名称:

在示例中,仅获取网络映射驱动器

string myDrive = "D";
DriveInfo[] allDrives = DriveInfo.GetDrives();
foreach (DriveInfo d in allDrives)
{
    if (d.IsReady == true && d.DriveType == DriveType.Network && d.Name == myDrive)
    {
        Console.WriteLine("Drive {0}", d.Name);
        //Do something
    }
}

原码there

【讨论】:

    【解决方案2】:

    你可以像那里一样检查它:

    using System.IO;
    
    // and actually checking the directory for the existence
    if (Directory.Exists(path))
      //Do something
    

    【讨论】:

      猜你喜欢
      • 2012-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-19
      • 1970-01-01
      • 2022-01-17
      • 2019-12-18
      • 2019-06-09
      相关资源
      最近更新 更多