C# 使用WebRequestMethods.Ftp.GetFileSize的替代方案?
我当前遇到一个问题,C# 使用WebRequestMethods.Ftp.GetFileSize的替代方案?,c#,.net,ftp,shared-hosting,ftpwebrequest,C#,.net,Ftp,Shared Hosting,Ftpwebrequest,我当前遇到一个问题,WebRequestMethods.Ftp.GetFileSize引发异常 文件不可用(例如,找不到文件,无法访问文件) 我已经研究了这个问题,并了解到问题的发生是因为我的FTP服务器不支持该功能。我后来联系了我的web服务器提供商,他们确认,除非我购买了他们的VPS计划(我目前使用共享主机),否则不支持该功能 我的问题是GetFileSize方法有解决方案吗?我已经研究了ListDirectoryDetails。然而,由于我只需要一段数据,我需要解析其余的数据,在研究了如何
WebRequestMethods.Ftp.GetFileSize
引发异常
文件不可用(例如,找不到文件,无法访问文件)
我已经研究了这个问题,并了解到问题的发生是因为我的FTP服务器不支持该功能。我后来联系了我的web服务器提供商,他们确认,除非我购买了他们的VPS计划(我目前使用共享主机),否则不支持该功能
我的问题是
GetFileSize
方法有解决方案吗?我已经研究了ListDirectoryDetails
。然而,由于我只需要一段数据,我需要解析其余的数据,在研究了如何做到这一点之后,我需要花一些时间来充分理解我需要编写什么代码,因为我只是一个C#程序员新手。当然,FTP协议没有两种方法来检索文件大小。即使有,另一种方法也会在您的服务器上被禁用,就像SIZE
一样
所有其他选项都涉及解析目录列表 您可以使用:
–以机器可读格式检索特定文件的文件属性。虽然这是最好的选择,但如果要检索一个特定文件的大小,则MLST
不支持它。您必须使用另一个FTP库 例如,对于my,您可以使用:FtpWebRequest
–以机器可读格式检索目录中所有文件的文件属性。同样,FtpWebRequest不支持MLSD
FtpWebRequest
–以未定义的格式检索目录列表。这是由列表
通过FtpWebRequest
方法支持的 有关C语言解析的示例,请参见我的答案:ListDirectoryDetails
SIZE
一样
所有其他选项都涉及解析目录列表 您可以使用:
–以机器可读格式检索特定文件的文件属性。虽然这是最好的选择,但如果要检索一个特定文件的大小,则MLST
不支持它。您必须使用另一个FTP库 例如,对于my,您可以使用:FtpWebRequest
–以机器可读格式检索目录中所有文件的文件属性。同样,FtpWebRequest不支持MLSD
FtpWebRequest
–以未定义的格式检索目录列表。这是由列表
通过FtpWebRequest
方法支持的 有关C语言解析的示例,请参见我的答案:ListDirectoryDetails
// get size of file
FtpWebRequest sizeRequest = (FtpWebRequest)WebRequest.Create("ftp://ftp.domain.com/test.txt");
sizeRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails; // or GetFileSize();
sizeRequest.Credentials = new NetworkCredential("user", "password");
sizeRequest.UsePassive = true;
sizeRequest.UseBinary = true;
sizeRequest.KeepAlive = true;
int size = (int)sizeRequest.GetResponse().ContentLength;
session.GetFileInfo("/remote/path/file.txt").Length