Comment obtenir le chemin du fichier depuis OpenFileDialog et FolderBrowserDialog?
Hé là, j'ai commencé à apprendre le C# il y a quelques jours et je suis en train de faire un programme qui copie et colle les fichiers (et les remplace si nécessaire) à un répertoire sélectionné mais je ne sais pas comment pour obtenir le répertoire et les chemins d'accès aux fichiers à partir de l'openfiledialog et folderbrowserdialog
ce que je fais mal?
Voici le code:
namespace filereplacer
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void direc_Click(object sender, EventArgs e)
{
string folderPath = "";
FolderBrowserDialog directchoosedlg = new FolderBrowserDialog();
if (directchoosedlg.ShowDialog() == DialogResult.OK)
{
folderPath = directchoosedlg.SelectedPath;
}
}
private void choof_Click(object sender, EventArgs e)
{
OpenFileDialog choofdlog = new OpenFileDialog();
choofdlog.Filter = "All Files (*.*)|*.*";
choofdlog.FilterIndex = 1;
choofdlog.Multiselect = true;
choofdlog.ShowDialog();
}
private void replacebtn_Click(object sender, EventArgs e)
{
//This is where i'm having trouble
}
public static void ReplaceFile(string FileToMoveAndDelete, string FileToReplace, string BackupOfFileToReplace)
{
File.Replace(FileToMoveAndDelete, FileToReplace, BackupOfFileToReplace, false);
}
}
source d'informationauteur user3728981
Vous devez vous connecter pour publier un commentaire.
Pour OpenFileDialog:
Pour FolderBrowserDialog:
Pour accéder à
selected folder
etselected file name
vous pouvez déclarer les deux cordes à le niveau de la classe.NOTE:
Que vous avez gardé
choofdlog.Multiselect=true;
cela signifie que dans leOpenFileDialog()
vous êtes en mesure de sélectionner plusieurs fichiers (en appuyant surctrl
clé et le clic gauche de la souris pour la sélection).Dans ce cas, vous pouvez obtenir tous les fichiers sélectionnés dans
string[]
:Au Niveau De La Classe:
Recherchez cette ligne (lors de la
Multiselect=true
cette ligne donne le premier fichier uniquement):Pour obtenir tous les fichiers utilisez cette:
vous pouvez stocker le Chemin d'accès dans la variable de chaîne comme
Utiliser le
Path
classe deSystem.IO
. Il contient des appels pour manipuler les chemins de fichiers, y comprisGetDirectoryName
qui fait ce que vous voulez, retourner la partie répertoire du chemin d'accès au fichier.L'utilisation est simple.
Pour obtenir le chemin d'accès complet d'un fichier ou de fichiers, alors vous devez utiliser FileName immobilier pour un fichier ou Les noms de fichiers propriété pour plusieurs fichiers.
ou de plusieurs fichiers
Pour obtenir le répertoire du fichier, vous pouvez utiliser Chemin d'accès.GetDirectoryName
Voici Jon Keet est réponse à une question similaire à propos de l'obtention des répertoires du chemin d'accès
Votre
choofdlog
est titulaire d'unFileName
etFileNames
(multi-sélection) contenant les chemins de fichier, après laShowDialog()
retourne.Créer cette classe comme Extension:
Ensuite, vous pouvez l'utiliser de cette façon:
Une primitive de la correction rapide qui fonctionne.
Si vous utilisez uniquement
OpenFileDialog
vous pouvez capturer l'FileName
SafeFileName
puis de soustraire pour obtenir un chemin de dossier: