StreamReader问题查找文件

时间:2012-07-29 22:35:19

标签: c# input io streamreader

以下是由我的导师和我的朋友Win 7给出的,它运作得很好。我已经尝试过我的工作笔记本电脑和我的个人桌面......不断发现以下错误

我没有得到它...我甚至将目录的权限更改为每个人只是为了踢...它适用于他的复制粘贴,但不是我的。

“无法找到路径'c:\ Users \ Wookie \ My Documents \'的一部分。”

using System;
using System.IO;

class Program
{
 static void Main()
 {

 // This line of code gets the path to the My Documents Folder
 string environment = System.Environment.GetFolderPath
 (System.Environment.SpecialFolder.Personal) + "\\";

 Console.WriteLine("Enter a file name in My Documents: ");
 string input = Console.ReadLine();

 // concatenate the path to the file name
 string path = environment + input;

 // now we can use the full path to get the document
 StreamReader myFile = new StreamReader(path);
 int n = int.Parse(myFile.ReadLine());
 Console.WriteLine("read {0}", n);

 Console.ReadLine();
 }//End Main()
}//End class Program

2 个答案:

答案 0 :(得分:3)

从程序的角度尝试文件是否确实存在。当然,将yourfile.txt替换为您要查找的文件的文件名。

string path = Path.Combine(System.Environment.GetFolderPath
    (System.Environment.SpecialFolder.Personal), "yourfile.txt");
Console.WriteLine(File.Exists(path));

如果没有,请在文件系统资源管理器中尝试相同的操作。否则,您确定已正确输入文件名吗?尝试暂时硬编码。上面的代码还显示了如何组合路径(注意缺少自动插入的斜杠(\))以及如何检查文件(或目录,使用Directory.Exists())是否存在。这可能有助于找到问题所在。

答案 1 :(得分:2)

为了良好的编码习惯,使用Path.Combine来连接路径。 而Path.DirectorySeparatorChar代替“\”作为一种良好做法。

示例:

 string path = Path.Combine(environment,  input);