Quelqu'un peut-il me dire ce qui va se passer dans ce code lorsqu'une erreur est rencontrée? Idéalement, il devrait continuer l'instruction foreach jusqu'à ce qu'il arrive au dernier enregistrement, mais je suspecte qu'il s'arrête au milieu de l'opération parce que lorsque je vérifie le nombre de fichiers déplacés, il est éteint par 225. S'il s'arrête réellement à cause d'une erreur , que puis-je faire pour le faire continuer la boucle?Création d'une nouvelle structure de répertoire et déplacement de fichiers en utilisant ASP.NET et C#
Je crée un nouveau gestionnaire de téléchargement pour notre logiciel et j'ai besoin de nettoyer les anciens fichiers. Il ya environ 715 fichiers orphelins égalant environ 750 Mo après un an et demi d'utilisation parce que les développeurs d'origine n'ont pas écrit le code pour remplacer correctement les anciens fichiers quand un nouveau a été téléchargé. Ils ont également enregistré les fichiers dans un seul répertoire. Je ne peux pas supporter cela donc je déplace tous les fichiers dans une structure - Nom du navire - ServiceRequesetID - fichiers téléchargés pour ce service. Je donne également aux utilisateurs un affichage en grille pour voir et supprimer les fichiers dont ils n'ont plus besoin lorsqu'ils travaillent sur le service.
Button1_Click protégé vide (expéditeur d'objet, EventArgs e) {
GridViewRow[] rowArray = new GridViewRow[gv_Files.Rows.Count];
gv_Files.Rows.CopyTo(rowArray, 0);
int i = -1;
foreach(GridViewRow row in rowArray)
{
i++;
string _serviceRequestID = ((Label)gv_Files.Rows[row.RowIndex].FindControl("lbl_SRID")).Text;
string _vesselName = ((Label)gv_Files.Rows[row.RowIndex].FindControl("lbl_VesselID")).Text;
string _uploadDIR = Server.MapPath("uploadedFiles");
string _vesselDIR = Server.MapPath("uploadedFiles" + "\\" + _vesselName);
string _fileName = ((Label)gv_Files.Rows[row.RowIndex].FindControl("lbl_FileName")).Text;
DirectoryInfo dInfo = new DirectoryInfo(_uploadDIR);
DirectoryInfo dVessel = new DirectoryInfo(_vesselDIR);
DirectoryInfo dSRID = new DirectoryInfo(_serviceRequestID);
dInfo.CreateSubdirectory(_vesselName);
dVessel.CreateSubdirectory(_serviceRequestID);
string _originalFile = _uploadDIR + "\\" + _fileName;
string _fileFullPath = Path.Combine(Server.MapPath("uploadedFiles/" + _vesselName + "/" + _serviceRequestID + "/"), _fileName);
FileInfo NewFile = new FileInfo(_fileFullPath);
string _fileUploadPath = _vesselName + "/" + _serviceRequestID + "/" + _fileName;
string sourceFile = _originalFile;
FileInfo _source = new FileInfo(sourceFile);
string destinationFile = _fileFullPath;
try
{
{
File.Move(sourceFile, destinationFile);
movefiles.InsertNewUploadPath(Convert.ToDecimal(_serviceRequestID), 1, _fileUploadPath);
}
}
catch (Exception ex)
{
CreateLogFiles Err = new CreateLogFiles();
Err.ErrorLog(Server.MapPath("Logs/ErrorLog"), ex.Message);
}
}
_utility.MessageBox("Completed processing files.");
}
Veuillez corriger votre formatage - c'est horrible. Nous utilisons [MarkDown] (http://stackoverflow.com/editing-help) ici, pas le HTML complet. Ajoutez juste 4 espaces avant chaque ligne de code. – Oded
Je suis en train de jouer avec ça. J'espère que ça a l'air un peu mieux. Vous êtes rapide ... – Infotech