如何从OpenFileDialog和FolderBrowserDialog获取文件路径?嘿,我几天前开始学习C#,我正在尝试制作一个程序,将文件复制并粘贴(并在需要时替换)到选定的目录,但我不知道如何从中获取目录和文件路径目录openfiledialog和folderbrowserdialog我做错了什么?这是代码:namespacefilereplacer{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoiddirect_Click(objectsender,EventArgse){stringfolderPath="";FolderBrowserDialogdirectchoosedlg=newFolderBrowserDialog();如果(directchoosedlg.ShowDialog()==DialogResult.OK){folderPath=directchoosedlg.SelectedPath;}}privatevoidchoof_Click(objectsender,EventArgse){OpenFileDialogchoofdlog=newOpenFileDialog();choofdlog.Filter="所有文件(*.*)|*.*";choofdlog.FilterIndex=1;choofdlog.Multiselect=true;choofdlog.ShowDialog();}privatevoidreplacebtn_Click(objectsender,EventArgse){//这就是我遇到麻烦的地方}publicstaticvoidReplaceFile(stringFileToMoveAndDelete,stringFileToReplace,stringBackupOfFileToReplace){File.Replace(FileToMoveAndDelete,FileToReplace,BackupOfFileToReplace,false);}对于OpenFileDialog:OpenFileDialogchoofdlog=newOpenFileDialog();choofdlog.Filter="所有"文件(*.*)|*.;choofdlog.FilterIndex=1;choofdlog.Multiselect=true;if(choofdlog.ShowDialog()==DialogResult.OK){stringsFileName=choofdlog.FileName;字符串[]arrAllFiles=choofdlog.FileNames;//当Multiselect=true时使用}ForFolderBrowserDialog:FolderBrowserDialogfbd=newFolderBrowserDialog();fbd.Description="自定义描述";如果(fbd.ShowDialog()==DialogResult.OK){stringsSelectedPath=fbd.SelectedPath;}要访问选定的文件夹和选定的文件名,您可以在类级别声明两个字符串namespacefilereplacer{publicpartialclassForm1:Form{stringsSelectedFile;字符串sSelectedFolder;publicForm1(){InitializeComponent();}privatevoiddirec_Click(objectsender,EventArgse){FolderBrowserDialogfbd=newFolderBrowserDialog();//fbd.Description="自定义描述";//不是强制的if(fbd.ShowDialog()==DialogResult.OK)sSelectedFolder=fbd.SelectedPath;否则sSelectedFolder=string.Empty;}privatevoidchoof_Click(objectsender,EventArgse){OpenFileDialogchoofdlog=newOpenFileDialog();choofdlog.Filter="所有文件(*.*)|*.*";choofdlog.FilterIndex=1;choofdlog.Multiselect=true;如果(choofdlog.ShowDialog()==DialogResult.OK)sSelectedFile=choofdlog.FileName;否则sSelectedFile=string.Empty;}privatevoidreplacebtn_Click(objectsender,EventArgse){if(sSelectedFolder!=string.Empty&&sSelectedFile!=string.Empty){//使用选择的文件夹路径和文件路径}}....}注意:正像你一直保持choofdlog.Multiselect=真;,这意味着在OpenFileDialog()中您可以选择多个文件(通过按ctrl和左键单击来选择)在这种情况下,您可以在string[]文件中选择所有文件:在类级别:string[]arrAllFiles;找到这一行(当Multiselect=true时这一行只给出第一个文件):sSelectedFile=choofdlog.FileName;要获取所有文件,请使用:arrAllFiles=choofdlog.FileNames;//此行给出了所有选定文件的数组您可以将路径存储在字符串变量中strings=choofdlog.FileName;使用System.IO的Path类。它包含用于操作文件路径的有用调用,包括GetDirectoryName,它可以执行您想要的操作,返回文件路径的目录部分。用法非常简单。stringdirectoryPath=System.IO.Path.GetDirectoryName(choofdlog.FileName);要获取所选文件的完整文件路径,您需要对一个文件使用FileName属性,对多个文件使用FileNames属性。varfile=choofdlog.文件名;//对于一个文件或多个文件varfiles=choofdlog.FileNames;//对于多个文件。要获取文件的目录,您可以使用Path.GetDirectoryName这是JonKeet关于从路径获取目录的帖子类似问题的答案在ShowDialog()返回后,您的choofdlog包含一个FileName和FileNames(用于多选)包含文件路径。创建此类作为扩展:publicstaticclassExtensiones{publicstaticstringFolderName(thisOpenFileDialogofd){stringresp="";resp=ofd.FileName.Substring(0,3);varfinal=ofd.FileName.Substring(3);varinfo=final.Split('\');for(inti=0;i然后,你可以这样使用它://ofdSource是一个OpenFileDialog一个原始的快速修复方法。如果你只使用OpenFileDialog,你可以捕获FileName,SafeFileName,并减去文件夹路径:ofd.FileName,"");如果我在这里回复晚了,我很抱歉,但我只是想我应该为OpenDialog想出一个更简单的解决方案。OpenDialogofd=newOpenDialog();varfullPathIncludingFileName=ofd.文件名;//返回包含文件名的完整路径varfullPathExcludingFileName=ofd.Filename.Replace(ofd.SafeFileName,"");//将从完整路径中删除文件名我以前没有使用过FolderBrowserDialog所以我相信我的伙伴们了解它。我希望这有帮助。以上就是C#学习教程:如何从OpenFileDialog和FolderBrowserDialog获取文件路径?如果分享的所有内容对您有用,需要了解更多C#学习教程,希望您多多关注---本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
