我正在尝试从C#中当前用户的appdata文件夹中的文件中读取,但我还在学习,所以我有这个:
int counter = 0;
string line;
// Read the file and display it line by line.
System.IO.StreamReader file = new System.IO.StreamReader("c:\\test.txt");
while ((line = file.ReadLine()) != null)
{
Console.WriteLine(line);
counter++;
}
file.Close();
// Suspend the screen.
Console.ReadLine();
但我不知道输入什么以确保它始终是当前用户的文件夹。
答案 0 :(得分:5)
我可能会误解你的问题,但是如果你想获得当前用户的appdata文件夹,你可以使用它:
string appDataFolder = Environment.GetFolderPath(
Environment.SpecialFolder.ApplicationData);
所以您的代码可能会变成:
string appDataFolder = Environment.GetFolderPath(
Environment.SpecialFolder.ApplicationData
);
string filePath = Path.Combine(appDataFolder, "test.txt");
using (var reader = new StreamReader(filePath))
{
string line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
甚至更短:
string appDataFolder = Environment.GetFolderPath(
Environment.SpecialFolder.ApplicationData
);
string filePath = Path.Combine(appDataFolder, "test.txt");
File.ReadAllLines(filePath).ToList().ForEach(Console.WriteLine);
答案 1 :(得分:1)
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
答案 2 :(得分:0)
查看Environment.GetFolderPath方法和Environment.SpecialFolder枚举。要获取当前用户的app数据文件夹,您可以使用:
Environment.GetFolderPath( Environment.SpecialFolder.ApplicationData )
获取当前漫游用户的应用程序目录。此目录存储在服务器上,并在用户登录时加载到本地系统上,或Environment.GetFolderPath( Environment.SpecialFolder.LocalApplicationData )
获取当前非漫游用户的应用程序目录。此目录不在网络上的计算机之间共享。 另外,使用Path.Combine将目录和文件名组合成一个完整路径:
var path = Path.Combine( directory, "test.txt" );
考虑使用File.ReadLines来读取文件中的行。请参阅MSDN page上有关File.ReadLines
和File.ReadAllLines
之间差异的备注。
foreach( var line in File.ReadLines( path ) )
{
Console.WriteLine( line );
}