-6

有人可以向我建议查看文件是否存在的最佳方法吗?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
    }
} 
4

1 回答 1

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));
于 2013-04-18T18:59:32.633 回答