相关疑难解决方法(0)

C#类解析WebRequestMethods.Ftp.ListDirectoryDe​​tails FTP响应

我正在创建一个服务来监视FTP位置以获取新更新,并且需要能够使用WebRequestMethods.Ftp.ListDirectoryDe​​tails方法解析从FtpWebRequest响应返回的响应.如果所有响应都遵循相同的格式,但不同的FTP服务器软件提供不同的响应格式,这将是相当容易的.

例如,可能会返回:

08-10-11  12:02PM       <DIR>          Version2
06-25-09  02:41PM            144700153 image34.gif
06-25-09  02:51PM            144700153 updates.txt
11-04-10  02:45PM            144700214 digger.tif
Run Code Online (Sandbox Code Playgroud)

另一台服务器可能会返回:

d--x--x--x    2 ftp      ftp          4096 Mar 07  2002 bin
-rw-r--r--    1 ftp      ftp        659450 Jun 15 05:07 TEST.TXT
-rw-r--r--    1 ftp      ftp      101786380 Sep 08  2008 TEST03-05.TXT
drwxrwxr-x    2 ftp      ftp          4096 May 06 12:24 dropoff
Run Code Online (Sandbox Code Playgroud)

并且还观察到其他差异,因此可能存在一些我尚未遇到的细微差别.

有没有人知道完全托管(不需要访问Windows上的外部DLL)C#类无缝地处理这些情况?

我只需要列出具有以下详细信息的目录内容:文件/目录名称,上次更新或创建的时间戳,文件/目录名称.

提前感谢任何建议,加文

.net c# ftp ftpwebrequest

20
推荐指数
3
解决办法
2万
查看次数

检索文件的创建日期(FTP)

我正在使用System.Net.FtpWebRequest该类,我的代码如下:

FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://example.com/folder");
request.Method = WebRequestMethods.Ftp.ListDirectory;

request.Credentials = new NetworkCredential("username", "password");

FtpWebResponse response = (FtpWebResponse)request.GetResponse();

Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);

string names = reader.ReadToEnd();

reader.Close();
response.Close();
Run Code Online (Sandbox Code Playgroud)

这是基于MSDN上提供的示例,但我找不到更详细的内容.

我将所有文件名存储在文件夹中names但是我现在如何遍历每个文件名并检索它们的日期?我想检索日期,以便找到最新的文件.谢谢.

c# ftp ftpwebrequest

15
推荐指数
3
解决办法
3万
查看次数

如何在FTP服务器上获取文件的上次修改日期

这是我的代码

FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(FTPAddress);
ftpRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
FtpWebResponse response = (FtpWebResponse)ftpRequest.GetResponse();
StreamReader streamReader = new StreamReader(response.GetResponseStream());

List<string> directories = new List<string>();

string line = streamReader.ReadLine();
while (!string.IsNullOrEmpty(line))
{
    directories.Add(line);
    line = streamReader.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

如你所见,我正在使用ListDirectoryDetails.

对于每一行directories,这是内容:

ftp://172.28.4.7//12-22-14  01:21PM                 9075 fileName.xml
Run Code Online (Sandbox Code Playgroud)

我的问题是如何从这条线上获得时间?我应该解析字符串吗?我不这么认为,因为我读到LastModified有财产,但我不知道如何使用它.

请问你能帮帮我吗?

.net c# ftp ftpwebrequest

6
推荐指数
2
解决办法
1万
查看次数

使用PowerShell从FTP下载最新文件

我正在开发一个PowerShell脚本,它将从FTP站点提取文件.文件每小时上传到FTP站点,所以我需要下载最新的文件.我目前的代码下载了今天的所有文件而不是一个文件.如何使其仅下载最新文件?

这是我目前使用的代码

$ftpPath = 'ftp://***.***.*.*'
$ftpUser = '******'
$ftpPass = '******'
$localPath = 'C:\Temp'
$Date = get-date -Format "ddMMyyyy"
$Files = 'File1', 'File2'

function Get-FtpDir ($url, $credentials)
{
  $request = [Net.FtpWebRequest]::Create($url)
  if ($credentials) { $request.Credentials = $credentials }
  $request.Method = [System.Net.WebRequestMethods+FTP]::ListDirectory
  (New-Object IO.StreamReader $request.GetResponse().GetResponseStream()) -split "`r`n" 

}

$webclient = New-Object System.Net.WebClient 
$webclient.Credentials = New-Object System.Net.NetworkCredential($ftpUser,$ftpPass)  
$webclient.BaseAddress = $ftpPath

Foreach ( $item in $Files )
{
    Get-FTPDir $ftpPath $webclient.Credentials |
      ? { $_ -Like $item+$Date+'*' } |
      % {

          $webClient.DownloadFile($_, (Join-Path …
Run Code Online (Sandbox Code Playgroud)

ftp powershell ftpwebrequest

5
推荐指数
1
解决办法
2556
查看次数

C# - 从FTP下载具有较高修改日期的文件

我有一个带有一些文件的FTP服务器.我在本地目录(in C:\)中有相同的文件.

当我运行该程序时,我希望它搜索FTP服务器中的所有文件,这些文件的最后修改时间戳晚于本地目录中的同一文件(同名),并下载所有已创建的文件.

请问有人能给我一个帮助或提示吗?我会感激所有答案!

c# ftp download last-modified

4
推荐指数
1
解决办法
1805
查看次数

Delete files older than X days from FTP server with PowerShell or batch file

I have to write a script which accesses an FTP server, and then deletes all *.zip files which are older than X days.

As clarification: The script can't run on the FTP server.

This is what I have so far:

$ftpServer = "RandomFTPServer"
$ftpUser = "Username"
$ftpPassword = Read-Host "Password" -AsSecureString

$credentials = New-ObjectSystem.Net.NetworkCredential($ftpUser, $ftpPassword)

function Get-FtpRequest($ftpPath) {
    $ftpRequest = [System.Net.FtpWebRequest]::Create("$ftpServer/$ftpPath")
    $ftpRequest.Credentials = $credentials
    $ftpRequest.UseBinary = $true 
    $ftpRequest.KeepAlive = $true
    $ftpRequest.UsePassive = $true
    return $ftpRequest
}
Run Code Online (Sandbox Code Playgroud)

Any tips on what …

.net ftp powershell batch-file ftpwebrequest

4
推荐指数
1
解决办法
7816
查看次数