none
OpenFileDialog et copier multiple fichier RRS feed

  • Question

  • Bonjour a tous

    Mon probleme est le suivant

    J'utilise ceci pour ouvrir le repertoire pour choisir les fichier
    d'un repertoire et les copier dans un autre

    private void tbImport_Click(object sender, EventArgs e)
            {
                OpenFileDialog ofd=new OpenFileDialog();
                ofd.InitialDirectory=Environment.GetFolderPath(Environment.SpecialFolder.Personal);
                ofd.Filter="Fichiers Snippets (*.DMSnip)|*.DMSnip";
                ofd.Multiselect = true;
                 
                if (ofd.ShowDialog(this)==DialogResult.OK)
                {
                    string FileName = ofd.FileName; //from
                    string dpath=TV1.SelectedNode.FullPath+"\\"; // Destination
                    if (ofd.FileName!="")
                    {
                        FileName = ofd.SafeFileName;
                                     //from     //to
                        File.Copy(ofd.FileName, dpath + FileName);
                        //reload the file in Treeview
                        LoadNodes(); 
                    }
                }

    le probleme est que j'obtient seulement le premier fichier du répertoire et pas les autre

    j'en ai 50 a copier je procede comment

    Merci


    Daniel

    samedi 28 avril 2012 01:38

Réponses

  • Bonjour a tous

    Mon probleme est le suivant

    J'utilise ceci pour ouvrir le repertoire pour choisir les fichier
    d'un repertoire et les copier dans un autre

    private void tbImport_Click(object sender, EventArgs e)
            {
                OpenFileDialog ofd=new OpenFileDialog();
                ofd.InitialDirectory=Environment.GetFolderPath(Environment.SpecialFolder.Personal);
                ofd.Filter="Fichiers Snippets (*.DMSnip)|*.DMSnip";
                ofd.Multiselect = true;
                 
                if (ofd.ShowDialog(this)==DialogResult.OK)
                {
                    string FileName = ofd.FileName; //from
                    string dpath=TV1.SelectedNode.FullPath+"\\"; // Destination
                    if (ofd.FileName!="")
                    {
                        FileName = ofd.SafeFileName;
                                     //from     //to
                        File.Copy(ofd.FileName, dpath + FileName);
                        //reload the file in Treeview
                        LoadNodes(); 
                    }
                }

    le probleme est que j'obtient seulement le premier fichier du répertoire et pas les autre

    j'en ai 50 a copier je procede comment

    Merci


    Daniel

    Bien en fait je vien de trouver ceci dans mes favories de code sur le web

            private void tbImport_Click(object sender, EventArgs e)
            {
                OpenFileDialog ofd=new OpenFileDialog();
                ofd.InitialDirectory=Environment.GetFolderPath(Environment.SpecialFolder.Personal);
                ofd.Filter="Fichiers Snippets (*.DMSnip)|*.DMSnip";
                ofd.Multiselect=true;
    
                if (ofd.ShowDialog(this)==DialogResult.OK)
                {
                    string FileName=ofd.FileName; //from
                    string dpath=Application.StartupPath+"\\"+TV1.SelectedNode.FullPath+"\\"; // Destination
                    if (ofd.FileName!="")
                    {
                        FileName=ofd.SafeFileName;  
                        string directoryName=Directory.GetParent(ofd.FileName).FullName; 
                        bool copy=CopyDirectory(directoryName, dpath, true);  
                        //reload the file in Treeview
                        LoadNodes();
                    }
                }
            }
    
            private static bool CopyDirectory(string SourcePath, string DestinationPath, bool overwriteexisting)
            {
                bool ret=false;
                try
                {
                    SourcePath=SourcePath.EndsWith(@"\")?SourcePath:SourcePath+@"\";
                    DestinationPath=DestinationPath.EndsWith(@"\")?DestinationPath:DestinationPath+@"\";
    
                    if (Directory.Exists(SourcePath))
                    {
                        if (Directory.Exists(DestinationPath)==false)
                            Directory.CreateDirectory(DestinationPath);
    
                        foreach (string fls in Directory.GetFiles(SourcePath))
                        {
                            FileInfo flinfo=new FileInfo(fls);
                            flinfo.CopyTo(DestinationPath+flinfo.Name, overwriteexisting);
                        }
                        foreach (string drs in Directory.GetDirectories(SourcePath))
                        {
                            DirectoryInfo drinfo=new DirectoryInfo(drs);
                            if (CopyDirectory(drs, DestinationPath+drinfo.Name, overwriteexisting)==false)
                                ret=false;
                        }
                    }
                    ret=true;
                }
                catch //(Exception ex)
                {
                    ret=false;
                }
                return ret;
            }

    et cela semble fonctionner tres bien mais si y a mieu faite le moi savoir Merci

    Daniel

    • Marqué comme réponse DanielMorais samedi 28 avril 2012 03:13
    samedi 28 avril 2012 03:13

Toutes les réponses

  • Bonjour a tous

    Mon probleme est le suivant

    J'utilise ceci pour ouvrir le repertoire pour choisir les fichier
    d'un repertoire et les copier dans un autre

    private void tbImport_Click(object sender, EventArgs e)
            {
                OpenFileDialog ofd=new OpenFileDialog();
                ofd.InitialDirectory=Environment.GetFolderPath(Environment.SpecialFolder.Personal);
                ofd.Filter="Fichiers Snippets (*.DMSnip)|*.DMSnip";
                ofd.Multiselect = true;
                 
                if (ofd.ShowDialog(this)==DialogResult.OK)
                {
                    string FileName = ofd.FileName; //from
                    string dpath=TV1.SelectedNode.FullPath+"\\"; // Destination
                    if (ofd.FileName!="")
                    {
                        FileName = ofd.SafeFileName;
                                     //from     //to
                        File.Copy(ofd.FileName, dpath + FileName);
                        //reload the file in Treeview
                        LoadNodes(); 
                    }
                }

    le probleme est que j'obtient seulement le premier fichier du répertoire et pas les autre

    j'en ai 50 a copier je procede comment

    Merci


    Daniel

    Bien en fait je vien de trouver ceci dans mes favories de code sur le web

            private void tbImport_Click(object sender, EventArgs e)
            {
                OpenFileDialog ofd=new OpenFileDialog();
                ofd.InitialDirectory=Environment.GetFolderPath(Environment.SpecialFolder.Personal);
                ofd.Filter="Fichiers Snippets (*.DMSnip)|*.DMSnip";
                ofd.Multiselect=true;
    
                if (ofd.ShowDialog(this)==DialogResult.OK)
                {
                    string FileName=ofd.FileName; //from
                    string dpath=Application.StartupPath+"\\"+TV1.SelectedNode.FullPath+"\\"; // Destination
                    if (ofd.FileName!="")
                    {
                        FileName=ofd.SafeFileName;  
                        string directoryName=Directory.GetParent(ofd.FileName).FullName; 
                        bool copy=CopyDirectory(directoryName, dpath, true);  
                        //reload the file in Treeview
                        LoadNodes();
                    }
                }
            }
    
            private static bool CopyDirectory(string SourcePath, string DestinationPath, bool overwriteexisting)
            {
                bool ret=false;
                try
                {
                    SourcePath=SourcePath.EndsWith(@"\")?SourcePath:SourcePath+@"\";
                    DestinationPath=DestinationPath.EndsWith(@"\")?DestinationPath:DestinationPath+@"\";
    
                    if (Directory.Exists(SourcePath))
                    {
                        if (Directory.Exists(DestinationPath)==false)
                            Directory.CreateDirectory(DestinationPath);
    
                        foreach (string fls in Directory.GetFiles(SourcePath))
                        {
                            FileInfo flinfo=new FileInfo(fls);
                            flinfo.CopyTo(DestinationPath+flinfo.Name, overwriteexisting);
                        }
                        foreach (string drs in Directory.GetDirectories(SourcePath))
                        {
                            DirectoryInfo drinfo=new DirectoryInfo(drs);
                            if (CopyDirectory(drs, DestinationPath+drinfo.Name, overwriteexisting)==false)
                                ret=false;
                        }
                    }
                    ret=true;
                }
                catch //(Exception ex)
                {
                    ret=false;
                }
                return ret;
            }

    et cela semble fonctionner tres bien mais si y a mieu faite le moi savoir Merci

    Daniel

    • Marqué comme réponse DanielMorais samedi 28 avril 2012 03:13
    samedi 28 avril 2012 03:13