Question Supprimer un dossier sur un serveur FTP

Plus d'informations
il y a 10 ans 8 mois #20397 par THIBURCE
Et voila mon code final.
Encore merci :laugh:

[code:1]##Fonction qui supprime un dossier sur le serveur FTP
# $dossier : dossier à supprimer sur le serveur
# $user : utilisateur du FTP
# $password : mot de passe utilisateur
# $keepAlive : permet de savoir si on veut laisser la requête active -> il vaut mieux y mettre à false pour ne pas avoir de blocage et être sur que celle-ci soit terminée
# $usePassive : le serveur choisi un port sur lequel écouter le client FTP
# $fichierLog : chemin du fichier de log
# return : renvoi l'erreur généré si il y en a sinon renvoi une chaîne vide
function supprDossierFTP
{
Param(
[Parameter(Mandatory=$true)]
$dossier,
$user,
$password,
$keepAlive,
$usePassive,
$fichierLog
)

$msgErreur = \"\"

# D'abord on supprime tous les fichiers que contient le dossier
try
{
$uri = New-Object System.Uri($dossier)
$ftp = [System.Net.FtpWebRequest]::Create($uri)
$ftp.Credentials = New-Object System.Net.NetworkCredential($user,$password)
$ftp.Method = [System.Net.WebRequestMethods+FTP]::ListDirectory
$ftp.keepAlive = $keepAlive
$ftp.useBinary = $useBinary
$ftp.usePassive = $usePassive
$response = $ftp.GetResponse()
$responseStream = $response.GetResponseStream()
$FTPReader = New-Object System.IO.Streamreader($ResponseStream)
$fileName = $FTPReader.ReadLine()

while($fileName -ne $null)
{
# On récupère le nom du fichier
$index = $fileName.LastIndexOf(\"/\"«») + 1
$taille = $fileName.Length - $index
$file = $fileName.Substring($index, $taille)

$file = \"{0}/{1}\" -F $dossier, $file
supprFichierFTP $file $user $password $keepAlive $usePassive $fichierLog
$fileName = $FTPReader.ReadLine()
}
}
catch
{
$msgErreur = \"Erreur : Erreur de ListDirectory du dossier $dossier : $_\"
ecritLog $fichierLog $msgErreur
}
finally
{
if($FTPReader -ne $null)
{
$FTPReader.Close() | Out-Null
}
if($responseStream -ne $null)
{
$responseStream.Close() | Out-Null
}
if($response -ne $null)
{
$response.Close() | Out-Null
}
}

# Ensuite on supprime le dossier
try
{
$uri = New-Object System.URI($dossier)
$ftp = [System.Net.FtpWebRequest]::Create($uri)
$ftp.Credentials = New-Object System.Net.NetworkCredential($user,$password)
$ftp.Method = [System.Net.WebRequestMethods+FTP]::RemoveDirectory
$ftp.KeepAlive = $keepAlive
$ftp.usePassive = $usePassive
$response = $ftp.GetResponse()
}
catch [Net.WebException]
{
$msgErreur = \"Erreur : Erreur de suppression du dossier $dossier : $_\"
ecritLog $fichierLog $msgErreur
}
finally
{
if($response -ne $null)
{
$response.Close() | Out-Null
}
}
return $msgErreur
}[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.049 secondes
Propulsé par Kunena