将文件从源路径复制到目标路径
我的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中复制文件的任何信息