如何检测文件是否存在?

-6 c# ftp file

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

string abc = "me_label.deploy";
File.Exists(abc)
Run Code Online (Sandbox Code Playgroud)

该文件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
    }
} 
Run Code Online (Sandbox Code Playgroud)

Dan*_*ker 5

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

但是你必须改变路径.使用Path该类中的方法.

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));
Run Code Online (Sandbox Code Playgroud)