C# 处理路径的最佳方法
在一个项目中,我有2-3个类,它们有指向本地文件系统文件夹的路径。如下图所示: 第1类: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
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文档就在这里:您可以使用许多方法来验证路径,并从中提取信息,例如它是否指向文件或文件夹,它是绝对路径还是相对路径。这对斯图也有好处