Récupération de la liste de fichiers FTP noms seulement, sans plus de détails
Je suis en train de télécharger le contenu d'un dossier FTP dans un dossier local à l'aide d'un ce exemple sur StackOverflow:
Téléchargement d'une liste de fichiers à partir de ftp pour dossier local à l'aide de c#?
Le code que j'ai en ce moment est:
public void DownloadFilesFromFTP(string localFilesPath, string remoteFTPPath)
{
remoteFTPPath = "ftp://" + Hostname + remoteFTPPath;
var request = (FtpWebRequest)WebRequest.Create(remoteFTPPath);
request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
request.Credentials = new NetworkCredential(Username, Password);
request.Proxy = null;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
List<string> directories = new List<string>();
string line = reader.ReadLine();
while (!string.IsNullOrEmpty(line))
{
directories.Add(line);
line = reader.ReadLine();
}
reader.Close();
using (WebClient ftpClient = new WebClient())
{
ftpClient.Credentials = new System.Net.NetworkCredential(Username, Password);
for (int i = 0; i <= directories.Count - 1; i++)
{
if (directories[i].Contains("."))
{
string path = remoteFTPPath + @"/" + directories[i].ToString();
string trnsfrpth = localFilesPath + @"\" + directories[i].ToString();
ftpClient.DownloadFile(path, trnsfrpth);
}
}
}
response.Close();
}
Je suis de la réception d'un chemin d'accès non pris en charge exception et quand j'ai inspecter les valeurs de mes variables path
et trnsfrpth
qu'ils semblent être, y compris Apache informations.
chemin: ftp://hostname/data/resourceOrders/-rw-r--r-- 1 apache
apache 367 16 Juillet 14:07 ressource-commandes-1437019656813-893.json
Et
trnsfrpth: V:\code.runner\local\orders-rw-r--r-- 1 apache apache
367 16 Juillet 14:07 ressource-commandes-1437019656813-893.json
Comment puis-je capturer simplement le nom de fichier, resource-orders-1437019656813-893.json
sans hacky (rightof()
, par exemple)?
OriginalL'auteur Michael A | 2015-07-20
Vous devez vous connecter pour publier un commentaire.
Pour récupérer la liste des noms de fichier sans plus de détails, utiliser
WebRequestMethods.Ftp.ListDirectory
(commande FTPNLST
), au lieu deWebRequestMethods.Ftp.ListDirectoryDetails
(commande FTPLIST
).OriginalL'auteur Martin Prikryl
Voici la fonction que j'utilise:
Définir votre sourceURI, utilisateur et mot de passe dans le main() et de déclarer une liste de fichiers comme:
Cela vous donnera facilement un objet iterable liste de noms de fichiers(sourceFileList[i].fName) à passer par! Ceux-ci peuvent être triées à l'aide .Sort() et vous pouvez aussi le faire Binaires de recherche.
OriginalL'auteur John Boling