2

我有这条线:

outputtext = Path.GetDirectoryName(Application.LocalUserAppDataPath) + "\\outputtext";

此行包含:

“C:\Users\bout0_000\AppData\Local\Diagnostic_Tool_Blue_Screen\Diagnostic Tool Blue Screen\outputtext”

我希望它只包含:

C:\Users\bout0_000\AppData\Local

我该怎么做 ?

4

1 回答 1

2

您可以使用Environment静态类

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

枚举Environment.SpecialFolder提供了各种预定义位置,您可以将它们用作存储数据的基本目录。另一种可能性是Environment.SpecialFolder.LocalApplicationData. 两个枚举之间的区别如下:

LocalApplicationData该目录用作当前非漫游用户使用的特定于应用程序的数据的公共存储库。

ApplicationData该目录用作当前漫游用户的特定于应用程序的数据的公共存储库。

不要忘记这些位置由系统上安装的每个应用程序共享。因此,为您的应用程序创建一个子文件夹并将您的数据存储在其中是一个很好的做法。像这样的东西

string commonFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string appDataFolder = Path.Combine(commonFolder,"Diagnostic_Tool_Blue_Screen"); 
if(!Directory.Exists(appDataFolder))
    Directory.CreateDirectory(appDataFolder);

string dataFile = Path.Combine(appDataFolder,"outputData.txt");
........ 
于 2013-08-11T21:11:46.707 回答