Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 处理路径的最佳方法_C#_Asp.net Mvc - Fatal编程技术网

C# 处理路径的最佳方法

C# 处理路径的最佳方法,c#,asp.net-mvc,C#,Asp.net Mvc,在一个项目中,我有2-3个类,它们有指向本地文件系统文件夹的路径。如下图所示: 第1类: private static string UPLOAD_ROOT = "~/Uploads/"; private static string IMAGES_FOLDER = "Images"; 第2类: private static string UPLOAD_ROOT = "~/Uploads/"; private static string PSD_FOLDER = "Generated P

在一个项目中,我有2-3个类,它们有指向本地文件系统文件夹的路径。如下图所示:

第1类:

 private static string UPLOAD_ROOT = "~/Uploads/";
 private static string IMAGES_FOLDER = "Images";
第2类:

 private static string UPLOAD_ROOT = "~/Uploads/";
 private static string PSD_FOLDER = "Generated PhotoShop PSDs";
因此,正如我们所看到的,UPLOAD_ROOT在我需要的任何地方重复。我想把这些路径保存在一个文件中。我该怎么做

我看到的可能解决方案是将这些文件放在一个静态类中,并按如下方式使用它:

public static class PathSettings
{
   public static string UPLOAD_ROOT = "~/Uploads/";
   public static string IMAGES_FOLDER = "Images";
   public static string PSD_FOLDER = "Generated PhotoShop PSDs";

}
file.SaveAs(PathSettings.UPLOAD_ROOT + filename);
然后使用该类,如下所示:

public static class PathSettings
{
   public static string UPLOAD_ROOT = "~/Uploads/";
   public static string IMAGES_FOLDER = "Images";
   public static string PSD_FOLDER = "Generated PhotoShop PSDs";

}
file.SaveAs(PathSettings.UPLOAD_ROOT + filename);

那我该怎么储存呢?使用静态类是最好的解决方案吗?CMSE中使用了什么?

带有常量的静态类是完全有效的。这种方法的主要缺点是,如果目录被移动,应用程序将需要重新编译

这样,您可以考虑将常量移到应用程序的<代码> Web.CONFIG文件中。当您需要计算该值时,只需将其从

web.config
文件中拉出,如下面的回答所示:

(不确定
~
web.config
字符串中是否允许使用
~
。阅读后很容易将其固定。)

编辑:


CMS通常使用配置文件来存储这样的路径,然后使用公共静态库来提取路径信息。通常,管理员可以通过一些UI来更改路径,从而编辑包含路径信息的文件。

带有常量的静态类是完全有效的。这种方法的主要缺点是,如果目录被移动,应用程序将需要重新编译

这样,您可以考虑将常量移到应用程序的<代码> Web.CONFIG文件中。当您需要计算该值时,只需将其从

web.config
文件中拉出,如下面的回答所示:

(不确定
~
web.config
字符串中是否允许使用
~
。阅读后很容易将其固定。)

编辑:


CMS通常使用配置文件来存储这样的路径,然后使用公共静态库来提取路径信息。通常,管理员可以使用一些UI来更改路径,从而编辑包含路径信息的文件。

将它们作为设置放在web.config中。这可以通过VisualStudio中的编辑器完成:右键单击项目,选择属性。选择左侧的“设置”选项卡。或者,在项目下的“属性”文件夹中(在解决方案资源管理器中),应该有一个设置文件,您可以双击该文件

您可以使用Properties.Settings.Default.WhateverSettingName访问此处的值


另外,为了获得额外的积分,请从字符串创建一个Path对象,并在系统的其余部分中使用它。

将它们作为设置放在web.config中。这可以通过VisualStudio中的编辑器完成:右键单击项目,选择属性。选择左侧的“设置”选项卡。或者,在项目下的“属性”文件夹中(在解决方案资源管理器中),应该有一个设置文件,您可以双击该文件

您可以使用Properties.Settings.Default.WhateverSettingName访问此处的值


另外,为了获得额外的积分,请从字符串创建一个Path对象,并在系统的其余部分使用该对象。

如果这些常量值根据操作系统、语言等进行更改,最好使用资源文件来存储常量


当您从字符串生成路径或URI时,最好使用的方法是和,如果这些常量值根据操作系统、语言等而改变,最好使用资源文件来存储常量


当您从字符串生成路径或URI时,最好使用和的方法?

?不..当然不..我的
web.config
已经很复杂了。我不想在里面放那么多的
。如果你想创建你自己的文件并手动解析它,你说的CMS中使用的
配置文件是什么意思?像
web.config
?web配置是最佳实践方法。如果单个文件太大,您可以将其拆分为多个文件。通常,CMS会尝试独立于平台,因此它们不会使用
web.config
,因为这是特定于IIS的。它们可能使用
path.config
,并且有一个类来解析其中的值。不..当然不..我的
web.config
已经很复杂了。我不想在里面放那么多的
。如果你想创建你自己的文件并手动解析它,你说的CMS中使用的
配置文件是什么意思?像
web.config
?web配置是最佳实践方法。如果单个文件太大,您可以将其拆分为多个文件。通常,CMS会尝试独立于平台,因此它们不会使用
web.config
,因为这是特定于IIS的。它们可能使用
paths.config
,并有一个类解析其中的值。我不会从字符串中创建路径对象,并在系统的其余部分使用它。
?你能解释一下吗?System.IO.Path是一个专门为处理文件系统路径而设计的类。MSDN文档就在这里:您可以使用许多方法来验证路径,并从中提取信息,例如它是否指向文件或文件夹,它是绝对路径还是相对路径。它还可以根据当前工作目录将相对路径转换为完全限定路径等。使用它是一件好事。我不会从字符串中创建路径对象,并在系统的其余部分使用它。
?你能解释一下吗?System.IO.Path是一个专门为处理文件系统路径而设计的类。MSDN文档就在这里:您可以使用许多方法来验证路径,并从中提取信息,例如它是否指向文件或文件夹,它是绝对路径还是相对路径。这对斯图也有好处