乐筑天下

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

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

[复制链接]

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2015-5-27 08:22:19 | 显示全部楼层 |阅读模式
大家好。
哇,这是我在C#中的第一篇文章,希望成为这门重要而强大的编程语言的优秀用户。
我搜索了一个类似于AutoLISP(GetField)的函数,用于C#,但没有找到任何函数,因此,我决定编写一个类似的程序,模仿以前的Autolisp函数,但要求用户输入有效的文件名对我来说是一个挑战。
因此,我编写了以下方法,以帮助我检查有效的文件名称,如下所示。
,希望有建设性的意见,可以提高我的技能。
私有布尔有效文件名(字符串文件名)
{
//Tharwat 27.05.2015
中我的第一个公共方法
//检查输入文件名是否有效的方法
//该方法应返回true/false作为输出。
布尔有效=真
<div>List<string>Pattern=新列表<string>{“^”、“
、“;”、“|”、“'、“/”、“、“、”、“\ \”、“:”、“=”、“?”、“\”、“*”}
用于(int i=0;i
{
if(filename.Contains(Pattern
{
valid=false
中断
}
}
返回有效
}

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

24

主题

204

帖子

6

银币

后起之秀

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

铜币
300
发表于 2015-5-27 08:54:20 | 显示全部楼层

私有布尔有效文件名(字符串文件名)
{
返回System.IO.Path.GetInvalidFileNameChars(文件名)。长度==0
}
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2015-5-27 09:19:15 | 显示全部楼层
感谢您的参与。
但是GetInvalidFileNameChars方法似乎包含一个字符数组,它不接受任何参数作为程序中指示的错误消息。
回复

使用道具 举报

24

主题

204

帖子

6

银币

后起之秀

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

铜币
300
发表于 2015-5-27 13:01:06 | 显示全部楼层

不确定您所说的“保存字符数组”是什么意思。它返回从字符串中提取的不被接受为文件名字符的字符数组。同样,不确定你在说什么“它不接受任何参数作为程序中指示的错误信息”。我的方法接受相同的参数,并返回与您发布的方法相同的类型。如果你想让这个方法做除了你发布的以外的事情,你应该说清楚。
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2015-5-27 13:10:05 | 显示全部楼层
MC,Tharwat说GetInvalidFileNameChars()不接受任何参数,它只是返回一个允许的无效字符数组。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2015-5-27 13:15:01 | 显示全部楼层
谢谢Jeff的精彩解释,这正是我的意思。
为了支持前面所说的,这里有一条错误消息:方法“GetInvalidFileNameChars”没有重载,它有1个参数。
回复

使用道具 举报

24

主题

204

帖子

6

银币

后起之秀

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

铜币
300
发表于 2015-5-27 15:06:15 | 显示全部楼层
实现为string类的扩展,   命名空间棕色,extensions . string extensions 。
{。
使用系统,木卫一;。

/// 。
///默认字符串类的扩展,。
/// 。
公共静态类StringExtensions。
{。
/// 。
///验证文件的名称和路径,。
/// 。
/// 文件名,。
/// 文件的路径,。
如果文件有效,则为true,否则为false。。
私有静态bool IsValidFileNameWithPath(此字符串文件名,字符串文件路径)。
{。
return(文件名,IndexOfAny(路径,GetInvalidFileNameChars())> = 0)& & 。
(文件路径,IndexOfAny(路径,GetInvalidPathChars())> = 0)& & 。
!文件,存在(路径,Combine(文件路径,文件名));。
}。

/// 。
///验证文件的名称,。
/// 。
/// 文件名,。
如果文件名有效,则为true,否则为false。。
私有静态bool IsValidFileName(此字符串文件名)。
{。
return(文件名,IndexOfAny(路径,GetInvalidFileNameChars())> = 0)& & 。
!文件,存在(路径,组合(文件名));。
}。

/// 。
///验证文件路径,。
/// 。
文件路径,。
如果路径path有效,则为true,否则为false。。
私有静态bool IsValidFilePath(此字符串文件路径)。
{。
return (filePath,IndexOfAny(路径,GetInvalidPathChars())> = 0)& & 。
!文件,存在(路径,combine(file path));。
}。
}。
}。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2015-5-27 15:09:12 | 显示全部楼层
啊,我现在看到我MSDN的方法。我很抱歉错误地记住了这种方法是如何工作的,让我们再试一次。private bool ValidFileName(string filename)。
{。
var pattern = Path.GetInvalidFileNameChars();。
返回 !文件名,任何(模式,包含);。
}P.S. Keith在我打字时发帖, 为了记录,基思的方式就是我的方式。
回复

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2015-5-27 15:46:58 | 显示全部楼层

恭喜你,塔尔瓦
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2015-5-27 17:37:32 | 显示全部楼层
使用正则表达式bool IsValidfileName(string fileName)。
{。
返回!Regex.IsMatch(。
文件名,。
string.Format("[{0}]",Regex.Escape(新字符串(Path.GetInvalidFileNameChars ()))));。
}。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-5 02:48 , Processed in 0.337172 second(s), 72 queries .

© 2020-2025 乐筑天下

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