2017-07-17 55 views
1

WinSCP .NET NuGetパッケージを使用して、制御できないサードパーティのFTPサーバーにアクセスしています。ファイルはサーバー上に存在しますが、リストディレクトリコマンドによって返されません。

問題:(すべてのファイルがリストされている)初期LISTコマンドの後、サーバはもはやディレクトリに存在するファイルの一覧表示、と思われていない - 唯一のサブdirectoriresを。ただし、FireFoxまたはFileZillaで同じFTPディレクトリを開くと、ファイルが表示されます。対照的に、WinSCPツール自体はファイルをリストしません。

WinSCPは、これらのファイルを一覧表示しないように、サーバーからの指示に従っているようです。組み込みの.NET FTPライブラリ(FtpWebRequest)にはまったく同じ制限があります。

私は、サーバーにアクセスするために使用していたコードは以下の通りです:

public class FTP 
{ 
    private SessionOptions opts = new SessionOptions(); 

    public FTP(string _userName, string _password, string _server) 
    { 
     opts.UserName = _userName; 
     opts.Password= _password; 
     opts.HostName = _server; 
     opts.Protocol = Protocol.Ftp; 
     opts.FtpMode = FtpMode.Passive;  
    }   

    public string[] GetFiles(string directory) 
    { 
     try 
     { 
      using (Session session = new Session()) 
      { 
       session.Open(opts); 

       RemoteDirectoryInfo dir = session.ListDirectory(directory); 
       return dir.Files.Where(x => !x.IsDirectory).Select(x => x.Name).ToArray(); 
      } 
     } 
     catch (Exception) 
     { 
      throw; 
     } 
    } 
} 

は、回避策のWinSCP(あるいは、別のC#ライブラリ)内にこの状況を正しく処理することができますありますか?

PowerShellやバッチなどの外部プロセスは使用できますが、理想的ではありません。

答えて

2

は、あなたが(上=)0FtpListAllオプションを設定する必要があります。

opts.AddRawSettings("FtpListAll", "0"); 

追加、FtpWebRequesthttps://winscp.net/eng/docs/rawsettings


を参照してください-aをURLに追加します。

FtpWebRequest ListDirectory does not return hidden filesを参照してください。

+0

お返事ありがとうございます。私自身のプロジェクトはすでに遠すぎて動いていますが、おそらく他の人にとって役に立ちます。これはファイルのダウンロードにも有効ですか? – vbnet3d

+1

はい、ダウンロードしても動作します(WinSCPが「隠しファイル」をダウンロードすることになります)。 –

1

FluentFTPは、リストアオプションをFtpListOption.AllFilesに設定してこの問題を処理できるようです。

私は、次のコードを使用してファイルを正常に記載されている:

FtpListItem[] files = ftp.GetListing(path, FtpListOption.AllFiles) 
       .Where(x => x.Type == FtpFileSystemObjectType.File) 
       .OrderBy(x => x.Modified) 
       .ToArray(); 

このライブラリはまた、同様にダウンロードをサポート。

UPDATE:受け入れ答えあたり、WinSCPを0にftpListAllセットでこれを正しく処理することができます。.. WinSCPの.NETアセンブリで

関連する問題