C# C“当文件以点开头时,读取ftp中的文件”&引用;(隐藏文件)

C# C“当文件以点开头时,读取ftp中的文件”&引用;(隐藏文件),c#,.net,ftp,readfile,hidden-files,C#,.net,Ftp,Readfile,Hidden Files,我需要在ftp中读取文件,但此文件以“.”(隐藏文件)开头,例如.teste.txt 我尝试使用以下代码读取此文件: FtpWebRequest reqFTP; reqFTP = (FtpWebRequest)WebRequest.Create("ftp://" + strFTP + ":" + strPorta + strDiretorio); reqFTP.Method = WebRequestMethods.Ftp.ListDirectory; reqFTP.Credentials

我需要在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();
 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();

您的问题可能与包含“.”或不包含“.”的文件无关,从代码外观来看,我打赌问题在于
strPorta
strdirectrio
之间缺少一个“/”条

您还可以检查用于创建WebRequest的连接字符串是否有关于特殊字符的任何类型的键入错误,如果有,请尝试在文本“\n”中使用新行时使用“\”之类的转义符

编辑

读了评论后,我突然意识到你实际上是在试图列出所谓的隐藏文件。在基于UNIX的系统中,文件名前的“.”用于将该文件标记为隐藏文件。 这里的问题是,您在FTP中用于连接的对象无法显示/列出隐藏文件,就像在另一个线程中一样:

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

在本例中,我使用以下代码将“-al”放在ftp url的末尾:

 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();
 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();

“读取文件”是什么意思?您想读取文件内容还是只在目录列表中查看它?+你说的“但是线路来了”是什么意思?请看。谢谢你的帮助,我昨天看到了这个链接并解决了我的问题。在这种情况下,我可以用ftp连接,这个ftp有很多文件,但只有以“.”开头的文件。我无法获取。对于示例:我有2个文件,文件1 test.txt和文件2.test.txt,我只能得到test.txt。tks为您提供帮助使用
-l
的标准方法是使用
ListDirectoryDetails
,而不是
ListDirectory
。然后只需添加
-a