如何检测文件是否存在?

时间:2013-04-18 18:56:02

标签: c# file ftp

任何人都可以向我建议查看文件是否存在的最佳方法吗? File.Exists对我不起作用。

string abc = "me_label.deploy";
File.Exists(abc)

文件abc来自Streamreader.ReadLine();

我甚至使用了完整的路径。我不想在我的项目中包含文件。如果我将它包含在我的项目中,它可以正常工作。

我的代码:

FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create("me@localhost/"; + ab);
//ab=newfolder/newfolder1
ftp.Credentials = new NetworkCredential(user, pass);
ftp.Method = WebRequestMethods.Ftp.ListDirectory;
StreamReader sr = new StreamReader(ftp.GetResponse().GetResponseStream());
StringBuilder result = new StringBuilder();
string abc = sr.ReadLine();
while (abc != null)
{
    result.Append(abc);
    //abc=file
    result.Append("\n");
    if (File.Exists(ab+abc))
    {
        //file
    }
} 

1 个答案:

答案 0 :(得分:5)

默认情况下,.NET中的任何相对路径都相对于项目的bin/Debug子目录。因此,除非me_label.deploy位于该文件夹中,否则您的程序将无法找到它。如果包含它,它将被复制到该文件夹​​然后它可以工作。

但你必须改变绝对路径。使用Path class

中的方法
string filename = "me_label.deploy";
string basePath = @"C:\My Documents\";
string absolutePath = Path.Combine(basePath, filename);
// C:\My Documents\me_label.deploy
Console.WriteLine(File.Exists(absolutePath));