乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: Tharwat

检查文件名是否有效的方法

[复制链接]

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2015-5-27 21:35:09 | 显示全部楼层
玩来玩,不需要这个,除非可能不得不每天检查数百万个文件名,从无效的字符中找到最大的char的整数值,如果要这样做,可能会使用uint或任何字符在引擎盖下,但最大值是124。 static int MaxInvaildChar()。
{。
整型最大值 = 0;。
foreach (var invalidFileNameChar in System.IO.Path.GetInvalidFileNameChars())。
{。
int cintv = Convert.ToInt32(invalidFileNameChar);。
如果 (最大>)。
{。
最大值 = cintv;。
}。
}。
返回最大值;。
}。
并使用 bool 数组 类程序。
{。

静态布尔[] 无效 = 新布尔[125];。

static void Main(string[] args)。
{。

foreach (var invalidFileNameChar in System.IO.Path.GetInvalidFileNameChars())。
{。
invalids[Convert.ToInt32(invalidFileNameChar)] = true;。
}。

string s1 = “hjghjhhjghjghjjg”;。
string s2 = “hjghjhhjghjg.mmmjk”;。
string s3 = “h^jghjhhjghjg.mmmjk”;。
string s4 = “hjghjhh。
string s5 = “aaaaajghjhhjgh>jg.mmmjk”;。
string s6 = “ghjhhjgh|jg.mmmjk”;。
string s7 = “goooooodddddddjg.mmmjk”;。

Console.WriteLine(“{0} = {1}”,s1, IsFileNameValid(s1));。
Console.WriteLine(“{0} = {1}”, s2, IsFileNameValid(s2));。
Console.WriteLine(“{0} = {1}”, s3, IsFileNameValid(s3));。
Console.WriteLine(“{0} = {1}”, s4, IsFileNameValid(s4));。
Console.WriteLine(“{0} = {1}”, s5, IsFileNameValid(s5));。
Console.WriteLine(“{0} = {1}”, s6, IsFileNameValid(s6)); 。
Console.WriteLine(“{0} = {1}”, s7, IsFileNameValid(s7));。
Console.Read();。

}。

static bool IsFileNameValid(string fileName)。
{。
for (int i = 0; i 。
{。
如果 (无效[文件名[i]])。
{。
返回 false;。
}。
}。

返回 true;。
}。

}。

回复

使用道具 举报

24

主题

204

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
300
发表于 2015-5-28 04:45:31 | 显示全部楼层
一个非常好的工作。
谢谢大家:Keith Brown,MexicanCustard,Gile和Jeff H写了这些不同的方法。
只是一个问题 Jeff H ,如果在文件名中发现任何无效的 char,在 if 函数内部的 foreach 循环中有一个中断函数来结束循环不是更好?
谢谢Mat(e)的问候。
我对我离开C#到现在为止所花费的时间感到遗憾,尽管在我开始了解 VS.net 和AutoCAD之间的机制之前,我每天都有很多令人讨厌的消息和 VS.net 错误。
问候。
回复

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2015-5-28 09:26:17 | 显示全部楼层
您可以将中断替换为 return 语句,因为它返回值并停止循环。
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2015-5-28 11:37:11 | 显示全部楼层

减少代码数量是一个非常好的主意。 尽管我最后的回答是要求您将中断函数作为我的函数包含在您的函数中,如果这当然被认为是正确的。
谢谢。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2015-5-28 12:30:38 | 显示全部楼层
我只是说 return 语句会打破循环,并使用您的示例来帮助显示它们的相似程度。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-5 02:53 , Processed in 0.149107 second(s), 60 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表