当此文件以点“.”开头时,C# 读取 ftp 中的文件(隐藏文件)
C# Read file in ftp when this file start with dot "." (hidden Files)
我需要读取 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();
您的问题可能与包含“.”的文件无关。或者不是,从代码的外观来看,我敢打赌问题是 strPorta
和 strDiretorio
.
之间缺少横线“/”
您还可以检查用于创建 WebRequest 的连接字符串是否有任何关于特殊字符的拼写错误,如果有,请尝试使用“\”转义 tehm,就像在文本“\”中使用新行一样n".
编辑
阅读评论后我发现您实际上是在尝试列出所谓的隐藏文件。在基于 UNIX 的系统中,“.”在文件名用于将该文件标记为隐藏之前。
这里的问题是您在 FTP 中用来连接的对象没有能力 show/list 隐藏文件,就像在另一个线程中那样:
我建议您使用用户 Jothi Prakash Anandan 提出的解决方案,如果您确实需要隐藏文件,请尝试其他库。
在这种情况下,我将“-al”放在最后 ftp url,使用此代码:
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 中的文件,但该文件以“.”开头(隐藏文件),例如 .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();
您的问题可能与包含“.”的文件无关。或者不是,从代码的外观来看,我敢打赌问题是 strPorta
和 strDiretorio
.
您还可以检查用于创建 WebRequest 的连接字符串是否有任何关于特殊字符的拼写错误,如果有,请尝试使用“\”转义 tehm,就像在文本“\”中使用新行一样n".
编辑
阅读评论后我发现您实际上是在尝试列出所谓的隐藏文件。在基于 UNIX 的系统中,“.”在文件名用于将该文件标记为隐藏之前。 这里的问题是您在 FTP 中用来连接的对象没有能力 show/list 隐藏文件,就像在另一个线程中那样:
我建议您使用用户 Jothi Prakash Anandan 提出的解决方案,如果您确实需要隐藏文件,请尝试其他库。
在这种情况下,我将“-al”放在最后 ftp url,使用此代码:
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();