C# SaveFileDialog() 中,如何让文件名只读?

neujeff83 2009-03-06 03:41:06
如题
SaveFileDialog F = new SaveFileDialog();
F.RestoreDirectory = true;
string SourceFilePath = @"aaa.xml";
F.FileName = "bbb.xml";
F.Filter = "(*.xml)|*.xml";
if (F.ShowDialog() == DialogResult.OK)
{
System.IO.File.Copy(SourceFilePath, F.FileName);
}
我想让用户选择一个位置,复制aaa.xml到bbb.xml
但是,我不想让用户随便改"bbb.xml"这个名字,想让这个对话框只读(就是让F.FileName只读),有什么方法和属性设置可以达到这样的效果吗?
...全文
326 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyi8808 2009-03-08
  • 打赏
  • 举报
回复
FolderBrowserDialog F = new FolderBrowserDialog(); 
string SourceFilePath = "aaa.xml";
if (F.ShowDialog() == DialogResult.OK)
{
string TargetFilePath = System.IO.Path.Combine(F.SelectedPath, "bbb.xml");
System.IO.File.Copy(SourceFilePath, TargetFilePath);
}
wuyi8808 2009-03-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 neujeff83 的帖子:]
我想让用户选择一个位置,复制aaa.xml到bbb.xml
[/Quote]

建议使用 FolderBrowserDialog 类来让用户选择一个文件夹,然后这样:

string 目标文件名 = System.IO.Path.Combine(用户选择的文件夹名, "bbb.xml");

长沙三毛 2009-03-08
  • 打赏
  • 举报
回复
俺也碰到过同样的问题,处理方法:任意改但最后只要 Path.GetDirectory(F.FileName),即只取目录。
wuyi8808 2009-03-08
  • 打赏
  • 举报
回复
string SourceFilePath = "aaa.xml"; 
string TargetFileName = "bbb.xml";
FolderBrowserDialog F = new FolderBrowserDialog();
F.Description = string.Format("请选择目标文件夹,目标文件名为{0}(不可更改)", TargetFileName);
if (F.ShowDialog() == DialogResult.OK)
{
string TargetFilePath = System.IO.Path.Combine(F.SelectedPath, TargetFileName);
System.IO.File.Copy(SourceFilePath, TargetFilePath);
}
AdaEniac 2009-03-08
  • 打赏
  • 举报
回复
保存好文件之后,修改文件的只读属性.参考下面

File.SetAttributes(@"c:\FileAttrib.txt",FileAttributes.ReadOnly|FileAttributes.Hidden);

EveryCase 2009-03-07
  • 打赏
  • 举报
回复
顶~~~~~~~~~~~~~~~~~~~~~~

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧