我尝试将此函数(和其他函数)放在我的项目中的单独的类文件中,该文件位于"/Helpers/UploadFiles.cs"下
namespace Artikelhantering.Helpers
{
public class UploadFiles
{
private void EnsureDirectoriesExist(string SKU)
{
// if the directory doesn't exist - create it.
if (!System.IO.Directory.Exists("//servername/wwwroot/prodimg/" + SKU))
{
System.IO.Directory.CreateDirectory("//servername/wwwroot/prodimg/" + SKU);
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后在控制器中我添加了Artikelhantering.Helpers; ,它也被添加到web.config文件的namespace部分以及global.asa.cx中.
然后我想我可以从我的控制器中的ActionResult这样调用它
[ChildActionOnly]
public ActionResult _EnumerateFolder(string SKU)
{
// create directory if it does not exist
EnsureDirectoriesExist(SKU);
ViewBag.SKU = SKU;
var folder = Directory.EnumerateFiles("//servername/wwwroot/prodimg/" + SKU);
return View(folder);
}
Run Code Online (Sandbox Code Playgroud)
但我得到的只是:
错误2当前上下文中不存在名称"EnsureDirectoriesExist"
试着把它写成UploadFiles.EnsureDirectoriesExist(); 但这也不起作用.我如何调用这些方法而不将它们全部放在同一个文件中?我想更好地组织这个.
该方法是私有的.您无法访问其他类的私有成员.
还有其他一些问题:
UploadFiles.EnsureDirectoryExists(),你需要使它成为一个类方法(static).1)的示例代码:
UploadFiles uf = new UploadFiles();
uf.EnsureDirectoryExists();
Run Code Online (Sandbox Code Playgroud)
2)的示例代码:
public class UploadFiles
{
public static void EnsureDirectoriesExist(string SKU)
{
// if the directory doesn't exist - create it.
if (!System.IO.Directory.Exists("//servername/wwwroot/prodimg/" + SKU))
{
System.IO.Directory.CreateDirectory("//servername/wwwroot/prodimg/" + SKU);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我还建议您使用Google阅读C#教程,该教程向您提供有关哪些类以及如何使用它们的信息.