我在使用C#打开文件时遇到问题
我有一个我需要阅读的文件,当我尝试使用C#打开它时,由于某种原因无法找到文件。
这是我的代码:
string fullpath = Directory.GetCurrentDirectory() +
string.Format(@"\FT933\FT33_1");
try
{
StreamReader reader = new StreamReader(fullpath);
}
catch(Exception e)
{
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
我正在尝试打开的文件位于Debug\FT933\FT33_1
内,没有扩展名。
每当我试图从同一目录中打开文本文件时,我都会这样做。
EDIT:
更准确我认为我遇到的问题是我不知道如何打开没有扩展的文件(如果我将文件更改为.txt扩展我确实设法打开它)
答案 0 :(得分:8)
不要使用硬编码的路径或目录,而是使用内置函数来连接路径 尝试
string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string fullpath = Path.Combine(path, your_filename);
请记住,当前目录可能不是您应用的目录!
更多,始终包含using
语句
using(StreamReader reader = new StreamReader(fullpath))
{
// Do here what you need
}
所以你确定它会在必要时释放而不会浪费记忆!
OP评论后编辑:
这是我的尝试:
string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string fullpath = Path.Combine(path, @"FT933\FT33_1");
if (File.Exists(fullpath))
{
using (StreamReader reader = new StreamReader(fullpath))
{
string ret = reader.ReadLine();
}
}
else
{
// File does not exists
}
如果您属于// File does not exists
部分,请确保该文件不在您要搜索的位置!
您确定您的文件没有隐藏的扩展名吗?
您确定操作系统或某些应用程序由于某种原因未锁定文件吗?
在另一条评论后再次编辑:
打开命令提示符(使用Start-> Run-> CMD(enter))并运行以下命令:
dir "C:\Users\Stern\Documents\Visual Studio 2010\Projects\Engine\ConsoleApplication1\bin\Debug\FT933\*.*" /s
并编辑显示结果的问题。