2011-08-13 15 views
6

ftpディレクトリのリストビューを作成しようとしています。表示部分はこれまでのところokですが、私は戻ってくるデータを操作することができません。ここに私が使ったスクリプトがあります。powershell:ftpディレクトリ一覧(スクリプトのヘルプ)

[System.Net.FtpWebRequest]$ftp = [System.Net.WebRequest]::Create("ftp://ftp.microsoft.com/ResKit/y2kfix/alpha/") 
$ftp.Method = [System.Net.WebRequestMethods+FTP]::ListDirectory #Details 

$response = $ftp.getresponse() 
$stream = $response.getresponsestream() 

$buffer = new-object System.Byte[] 1024 
$encoding = new-object System.Text.AsciiEncoding 

$outputBuffer = "" 
$foundMore = $false 

## Read all the data available from the stream, writing it to the 
## output buffer when done. 
do 
{ 
    ## Allow data to buffer for a bit 
    start-sleep -m 1000 

    ## Read what data is available 
    $foundmore = $false 
    $stream.ReadTimeout = 1000 

    do 
    { 
     try 
     { 
      $read = $stream.Read($buffer, 0, 1024) 

      if($read -gt 0) 
      { 
       $foundmore = $true 
       $outputBuffer += ($encoding.GetString($buffer, 0, $read)) 
      } 
     } catch { $foundMore = $false; $read = 0 } 
    } while($read -gt 0) 
} while($foundmore) 

$outputBuffer 

これは私がこのスクリプトのために返す応答です。

PS C:\Users\Toshiba> C:\Apps\@PowerShell\FTPListDirectory.ps1 
forfiles.exe 
logtime.exe 
timeserv 
w32time 

そこから、私はどのように私が取り組んでいるデータに取り組むことができます。ファイル情報(名前、作成時刻、最終更新日など)と他のもの。

ここでの目標は、ディレクトリ内のすべてのftpデータを表示し、ディレクトリ内のすべてのファイルをダウンロードすることです。

万が一、

答えて

8

は、まず、あなたはファイル名のみを取得する詳細なしでこの

$ftp.Method = [System.Net.WebRequestMethods+FTP]::ListDirectoryDetails 

でメソッドを置き換え、すべてのデータ

を取得する必要があります。私は通常

$webclient = New-Object System.Net.WebClient 
$webclient.credentials = New-Object System.Net.NetworkCredential("anonymous","[email protected]") 
$webclient.downloadfile("ftp://ftp.host.com/file.txt", "c:\temp\file.txt") 

Downloadfile method of the webclient class

WebClientクラスを使用してファイルをダウンロードするには

関連する問題