【问题标题】:Cannot find created directory in C# [duplicate]在 C# 中找不到创建的目录 [重复]
【发布时间】:2013-06-17 02:53:16
【问题描述】:

我使用:

public const string WbPlanDirPath = "\\SavedWbPlans";

if (!Directory.Exists(WbPlanDirPath))
{
    System.IO.Directory.CreateDirectory(WbPlanDirPath);
}  

创建一个目录。虽然,它似乎工作正常(没有抛出异常)我在文件系统的任何地方都找不到文件夹/目录。我是不是做错了什么?

【问题讨论】:

  • 尝试打印您创建的目录的路径。
  • 您也可以使用(new DirectoryInfo(WbPlanDirPath)).FullName通过控制台/消息框打印目录

标签: c# io


【解决方案1】:

它应该在当前目录的卷的根级别上创建。检查Environment.CurrentDirectory

【讨论】:

    【解决方案2】:

    这是在当前工作目录的卷根目录之外的\SavedWebPlans 中创建一个目录。

    【讨论】:

      【解决方案3】:
      "\\SavedWbPlans"
      

      请注意开头的反​​斜杠。在 Windows 中的路径上下文中,这指的是驱动器的 root

      因此,目录很可能创建在驱动器的根目录,具体取决于工作目录的位置。

      例如,如果工作目录是D:\Somewhere\in\the\drive\,它将被创建为D:\SavedWbPlans


      如果您尝试在程序所在的同一目录中创建目录,请改用以下代码:

      string directory_of_program = Path.GetDirectoryName(Application.ExecutablePath);
      string WbPlanDirPath = Path.Combine(directory_of_program, "SavedWbPlans");
      
      if (!Directory.Exists(WbPlanDirPath))
      {
          System.IO.Directory.CreateDirectory(WbPlanDirPath);
      }  
      

      【讨论】:

      • 解释清楚!
      【解决方案4】:

      它与您的程序位于同一父目录(包含您的程序的目录)中。

      而不是"\\SavedWbPlans";

      使用"SavedWbPlans";

      这会将它保存在当前目录中(与您的程序相同的目录)

      【讨论】:

        【解决方案5】:

        CreateDirectory 返回一个指向已创建目录的DirectoryInfo 对象。

        检查它的属性以找出它是在哪里创建的。

        【讨论】:

          猜你喜欢
          • 2019-01-16
          • 1970-01-01
          • 2018-05-11
          • 1970-01-01
          • 1970-01-01
          • 2020-09-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多