C# 如何打开桌面上的文件
我正在尝试打开一个文本文件example.txt,它位于带有StreamReader的桌面上。但当我运行代码时,它抛出的错误消息是:无论代码路径如何,都找不到文件,一直指向项目中的调试文件夹。所以我想知道,流线型切割机是不是工作的错误工具 这是我正在使用的代码C# 如何打开桌面上的文件,c#,path,text-files,environment,streamreader,C#,Path,Text Files,Environment,Streamreader,我正在尝试打开一个文本文件example.txt,它位于带有StreamReader的桌面上。但当我运行代码时,它抛出的错误消息是:无论代码路径如何,都找不到文件,一直指向项目中的调试文件夹。所以我想知道,流线型切割机是不是工作的错误工具 这是我正在使用的代码 Console.WriteLine("What file would you like to load?"); string FileName = Console.ReadLine(); StreamReader Reader - ne
Console.WriteLine("What file would you like to load?");
string FileName = Console.ReadLine();
StreamReader Reader - new StreamReader(FileName);
在StreamReader上引发异常,请尝试以下操作:
var reader = File.OpenText(FileName);
或对于小文件:
var allText = File.ReadAllText(FileName);
当然。。。总是有可能指定的文件名实际上不存在。。。。正当我的意思是,默认情况下,它可能会在本地查找.exe旁边的文件,该文件将位于/../…/bin/debug/或其他位置
如果特别希望在当前用户的桌面文件夹中查找文件,则可能需要:
var fullPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\" + FileName;
var allText = File.ReadAllText(fullPath);
假设您使用了正确的语法,而不是文章中的实际代码,那么代码中没有明显的错误,但错误可能是由于路径不正确造成的 如果文件存在,并且在windows上使用以驱动器号开头的绝对路径,则应该能够执行以下操作:
Console.WriteLine("What file would you like to load?");
string fileName = Console.ReadLine();
using (Stream reader = new StreamReader(fileName))
{
string line = reader.ReadLine();
// ...
}
找不到文件实际上是发生了什么。请注意异常详细信息,并检查是否输入了现有文件名和扩展名。 另外,不要忘记处置StreamReader:
string text;
var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), fileName);
using (var sr = new StreamReader(path))
{
text = sr.ReadToEnd();
}
您的程序可能找不到该文件,因为它正在错误的位置查找。你可以用这样的方法来纠正
private void ReadFromDesktop(string fileName)
{
string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
string fullName = System.IO.Path.Combine(desktopPath, fileName);
using (StreamReader steamReader = new StreamReader(fullName))
{
string content = steamReader.ReadToEnd();
}
}
此方法采用您在控制台上输入的文件名,然后在环境中查询到桌面的路径
然后它使用Path.Combine方法为文件创建一个完全限定的名称。结果由流读取器处理
要点是,如果您只提供文件名,应用程序将查找其根目录,正如您所写的,即调试目录。提示是错误消息,告诉您它使用调试目录的名称创建了完整路径。因此,了解您用作输入的路径是什么样子会很有趣。不幸的是,我不能直接评论这个问题