来自Asp.net Core的Azure devops wwwroot文件夹中的文件复制失败

时间:2019-05-24 06:55:02

标签: c# file asp.net-core path azure-devops

将文件从源路径复制到目标路径

我的Azure路径为D:\home\site\wwwroot\Templates。在Templates文件夹中,我有一个名为ExportTemplate.xlsx的excel文件,它是带有书签的静态模板。Am在同一位置(即D:\home\site\wwwroot\Templates)复制该文件的名称不同。

 [AllowAnonymous]
        [HttpGet("getRootPath")]
        public string GetRootPath()
        {
            try
            {

                string sourcePath = string.Empty;
                string ReturnMsg = "Success";

                sourcePath = "Templates\\" + "ExportTemplate" + ".xlsx"; ;

                sourcePath = sourcePath.Replace("\\", "/");

                Guid id1 = Guid.NewGuid();  //  New File Name 

                string path = _hostingEnvironment.ContentRootPath;  // It will return D:\home\site\wwwroot\ 

                string destinationPath = Path.Combine(path, "Templates\\");

                 string path1 = Path.Combine(_hostingEnvironment.ContentRootPath, sourcePath);

                FileInfo f1 = new FileInfo(sourcePath);

                if (f1.Exists)
                {
                    if (!Directory.Exists(destinationPath))
                    {
                        Directory.CreateDirectory(destinationPath);
                    }
                    f1.CopyTo(string.Format("{0}{1}{2}", "Templates", id1, f1.Extension));
                }

                return ReturnMsg;
            }
            catch (Exception ex)
            {
                return ex.Message.ToString();
            }
        }

我在OpenXML中使用该复制文件

DocumentFormat.OpenXml.Packaging.SpreadsheetDocument doc = DocumentFormat.OpenXml.Packaging.SpreadsheetDocument.Open(destinationPath, true) 

它在Local上运行良好,但是在发布到Azure之后,它会抛出Error

  

“找不到文件   'D:\ home \ site \ wwwroot \ Templates \ cbc5aa20-dae9-4a69-b6c4-4f552211d06b.xlsx'。”

之所以能够在Azure中读取静态文件,是因为我将静态模板文件属性保留为“复制到输出目录以始终复制”。这就是为什么能够从该Folder读取文件的原因。但是使用新名称复制在Azure中不起作用。

请建议有关使用Asp.net Core 2.0在Azure Devops中复制文件的任何信息

0 个答案:

没有答案