C#当该文件以点“。”开头时,读取ftp中的文件。 (隐藏文件)

问题描述 投票:0回答:2

我需要在ftp中读取文件,但是该文件以“。”开头。 (隐藏文件),例如.teste.txt。

我尝试使用此代码读取此文件:

 FtpWebRequest reqFTP;
 reqFTP = (FtpWebRequest)WebRequest.Create("ftp://" + strFTP + ":" + strPorta + strDiretorio);
 reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
 reqFTP.Credentials = new NetworkCredential(strUser, strPass);

 response = (FtpWebResponse)reqFTP.GetResponse();

 reader = new StreamReader(response.GetResponseStream());
 string line = reader.ReadLine();
c# .net ftp readfile hidden-files
2个回答
0
投票

在这种情况下,使用此代码,将“ -al”放在ftp的末尾:

 var reqFTP = (FtpWebRequest)WebRequest.Create("ftp://" + strFTP + ":" + strPorta + strDiretorio + " -al");

reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
reqFTP.Credentials = new NetworkCredential(strUser, strPass);

response = (FtpWebResponse)reqFTP.GetResponse();

reader = new StreamReader(response.GetResponseStream());
string line = reader.ReadLine();

-1
投票

您的问题可能与包含“。”的文件无关。不管是否,根据我打赌的代码,问题是strPortastrDiretorio之间缺少竖线“ /”。

您还可以检查用于创建WebRequest的并置字符串是否有关于特殊字符的任何错字,如果是,请尝试使用“ \”来转义tehm,就像在文本“ \ n”中使用新行一样。

编辑

阅读评论后,我发现您实际上是在尝试列出所谓的隐藏文件。在基于UNIX的系统中,“。”在使用文件名将该文件标记为隐藏之前。这里的问题是,您正在FTP中用于连接的对象没有显示/列出隐藏文件的能力,就像在另一个线程中一样:

FtpWebRequest ListDirectory does not return hidden files

我建议您使用用户Jothi Prakash Anandan提出的解决方案,如果确实需要隐藏文件,请尝试其他图书馆。

© www.soinside.com 2019 - 2024. All rights reserved.