访问在不同项目中但在相同解决方案中的文件

时间:2019-01-05 10:16:31

标签: c# asp.net-core-mvc

我要在控制台应用程序项目中创建xml文件,然后从txt文件写入数据,并且在同一解决方案中也有一个asp.net核心mvc项目。我想在asp中读取xml数据。网络核心项目,但我无法访问在不同项目中但在相同解决方案中的文件。

public IActionResult List()
    {
        List<Models.Word> wordList = new List<Models.Word>();
  string xmlPath=@"~\\YCMobyDickChallenge\\bin\\Debug\\netcoreapp2.1\\words.xml";
        //using (FileStream fs = new FileStream())
        using (XmlTextReader xmlReader = new XmlTextReader(xmlPath))
        {
            while (xmlReader.Read())
            {
                switch (xmlReader.NodeType)
                {
                    case XmlNodeType.Element:
                        if (xmlReader.Name != "words")
                        {
                            Models.Word word = new Models.Word();
                            word.text = xmlReader.GetAttribute("text");
                  word.count = Convert.ToInt32(xmlReader.GetAttribute("count"));
                            wordList.Add(word);
                        }
                        break;
                }
            }
        }
        wordList.Sort();
        return View(wordList);
    }

在这个名为YCMobyDickChallenge的解决方案中,我有两个项目,例如YCMobyDickChallengeYCMobyDickWebApp,我试图从Web应用程序访问控制台应用程序中的words.xml文件。当我调用此操作时,它给了我类似的错误。

  

“ System.IO.DirectoryNotFoundException:'无法找到   路径   'C:\ Users \ cosku \ source \ repos \ YCMobyDickChallenge \ YCMobyDickWebApp \〜\ YCMobyDickChallenge \ YCMobyDickChallenge \ bin \ Debug \ netcoreapp2.1 \ words.xml'。'“

1 个答案:

答案 0 :(得分:0)

由于您已经找到答案,因此我将对您提供的代码发表一些意见。

  1. 为什么将文本文件保存在项目文件夹中?如果您经常创建文件,则应考虑在项目文件夹之外创建单独的文件夹。然后将输出文件夹路径保存在字符串常量中,并在不同项目中使用它。 您可以拥有一个包含所有喜欢的常量的类:

public static constant string BatchOutputFolder = @"C:\BatchOutput\";

var xmlPath = Constants.BatchOutputFolder + "words.xml";
  1. 使用“ @”符号声明路径字符串时,不需要双反斜杠“ \”。