【问题标题】:How to detect whether a file exists?如何检测文件是否存在?
【发布时间】:2013-04-12 01:00:42
【问题描述】:

谁能向我建议查看文件是否存在的最佳方法? 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
    }
} 

【问题讨论】:

  • 为什么 file.exists 不适合你?你能走过去看看正确的路径吗?
  • 您确定文件存在吗?
  • File.Exists is not working for me。它是一个确定性函数。不会随机工作。
  • 由于您对 ftp 的评论 - 也许这可以帮助您入门:stackoverflow.com/questions/2140704/… .

标签: c# file ftp


【解决方案1】:

默认情况下,.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));

【讨论】:

  • +1。但我会用Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) 代替basePath
  • 如果我将它包含在我的项目中,它工作正常,我希望它重新下载,我不想将这些文件添加到我的项目中。我希望它只从 ftp 链接检查。
  • @ispiro 我同意,但这只是我脑海中的任何随机路径。我不知道 OP 将这个文件存储在哪里。
  • 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 结果 = new StringBuilder();字符串 abc = sr.ReadLine(); while (abc != null) { result.Append(abc); //abc=文件结果.Append("\n"); if (File.Exists(ab+abc)) { //文件 }}
  • @user2155670 请使用我展示的技术组合ababc
猜你喜欢
  • 2016-11-06
  • 1970-01-01
  • 1970-01-01
  • 2011-03-27
  • 2012-10-25
  • 2011-03-07
  • 1970-01-01
  • 2011-11-01
相关资源
最近更新 更多