1

以下是我的导师和我的朋友在 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
4

2 回答 2

3

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

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

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

于 2012-07-29T22:42:14.783 回答
2

只是为了良好的编码习惯Path.Combine,用于连接路径。而是将“ Path.DirectorySeparatorChar\”作为一个好习惯。

例子:

 string path = Path.Combine(environment,  input);
于 2012-07-29T22:37:03.207 回答