我正在使用CLI / CLR和非托管代码,但这个问题与CLI / CLR部分有关,我观察到了与c#代码相同的行为。
我正在尝试使用不符合标准文件扩展名规则的旧文件名保存文件。 文件扩展名为“-C2.txt”,遗憾的是,当我使用SaveFileDialog :: Filter方法时,文件名不包含“-C2”部分。在SaveFileDialog中有解决方法让我这样做吗?
SaveFileDialog^ cDlg = gcnew SaveFileDialog;
cDlg->Filter = "csv file (*.csv)|*.csv|-C2.txt file (*-C2.txt)|*-C2.txt|All Files (*.*)|*.*";
示例:
在SaveFileDialog框中,我选择一个现有文件“File01.csv”,然后将其放在SaveFileDialog框中现有的“文件名:”文本框中。
listView框仅显示适合过滤器的文件,例如:仅显示* -C2.txt文件,而不显示* .txt文件。
但是,我将“另存为类型:”组合框更改为“-C2.txt”,新文件名为“file01.txt”而不是“file01-C2.txt”。
< / LI> 醇>答案 0 :(得分:1)
不,没有办法让对话框为您执行此操作。正如Jeff Mercado所说的那样“-ct.txt
不是扩展名,.txt
部分是......”。
我能为您提供的最佳解决方案是自行更改所选文件路径,如此
string strFullPath = FileBrowser.Filename; // Has your "SomeFile.txt
string[] strTmpArr = strFullPath.Split('.');
strFullPath = String.Format("{0}-C2.txt", strTmpArr[0]);
请注意,这假设您没有'。'文件路径中的任何其他位置。您无法使用Path.ChangeExtension()
-C2.txt
.-C2.txt
。
我希望这会有所帮助。