保存Bitmap文件时如何使用含冒号的文件名?
解决Bitmap保存时含冒号的文件名报错问题
Windows文件系统禁止文件名包含冒号(:),这是系统级的限制,所以你直接把HH:mm格式的时间拼进文件名里肯定会报“路径格式不支持”的错误,和用不用Path.Combine无关。
解决方法很简单,把时间格式里的冒号替换成Windows允许的字符(比如横杠-、点.、下划线_),同时注意正确拼接文件名(别把时间直接加在后缀后面):
修正后的代码示例
original = new Bitmap(this.Size.Width, this.Size.Height); Graphics gr = Graphics.FromImage(original); gr.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, original.Size); form1.getImage(original); // 把时间格式里的冒号换成横杠,同时正确拼接文件名 string timestamp = DateTime.Now.ToString("HH-mm"); // 用@符号避免路径字符串的转义问题,或者用双反斜杠\\ string savePath = @"C:\Users\park\Desktop\test\justest_" + timestamp + ".jpeg"; original.Save(savePath, ImageFormat.Jpeg);
补充说明
- 你之前的代码还有个小问题:直接把时间拼在
.jpeg后面,会生成类似justest.jpeg14:30的文件名,这不符合文件命名规范,正确的应该是把时间放在文件名主体和后缀之间。 - Windows文件名禁止的字符还有:
<、>、",/、\、|、?、*,这些都要避免出现在文件名里。
内容的提问来源于stack exchange,提问作者eater Sun
相关产品推荐
相关产品推荐

