修改路径字符串以提高健壮性
本文关键字:健壮性 路径 字符串 修改 | 更新日期: 2023-09-27 17:59:26
我有一个字符串作为程序从中读取数据的文件的路径。我想提高健壮性,我记得看到有人这样做。''blabla''ballbla,但我发现很难找到一个主题来解释它是如何工作的,这样我就可以在我的程序中实现它。
我的路径(我知道命名不正确,但如果我用大写p命名,它会干扰我的财产)
private const string path = @"C:'Users'zain'Desktop'program_storage'AccountDatabase.txt";
我希望它类似于.'program_storage'AccountDatabase.txt
(不幸的是,这不起作用),因为这意味着我可以在不必更改常量类中的字符串的情况下移动程序。
感谢
您可以使用以下内容来存储/读取文件:
var dir = Path.Combine(Environment
.GetFolderPath(Environment.SpecialFolder.ApplicationData), "MyProgram");
if(!Directory.Exists(dir))
Directory.CreateDirectory(dir);
var path = Path.Combine(dir, "AccountDatabase.txt");
这将在用户帐户的App_Data中使用或创建一个文件夹,然后返回该文件夹中文件的路径。有关其他可能的位置,请参阅Environment.SpecialFolder
枚举。
您可以使用System.IO.IsolatedStorage命名空间中的IsolatedStorageFile类来轻松访问为应用程序和用户隔离的目录:
有关详细信息,请参阅MSDN文档:http://msdn.microsoft.com/en-us/library/3ak841sy(v=vs.110).aspx
MSDN上有一个很好的例子
这从硬盘上的物理位置提供了一个很好的抽象,并支持本地和漫游用户配置文件。
注意-
如果使用本地配置文件,那么物理位置仍然是<SYSTEMDRIVE>'Users'<user>'AppData'Local
目录(对于WindowsVista/7/8/server2008),根据另一个答案
注2-
您还可以在IsolatedStorageFile上使用静态方法来获取计算机范围的存储(所有用户)
IsolatedStorageFile isoFile = IsolatedStorageFile.GetMachineStoreForApplication();
这将为您提供Windows Vista或更高版本上的<SYSTEMDRIVE>'Users'All Users'AppData'Local
目录