如何使用Delphi检查字符串是否为有效的Windows文件夹名称?
可能重复:如何使用Delphi检查字符串是否为有效的Windows文件夹名称?,windows,delphi,directory,delphi-xe,Windows,Delphi,Directory,Delphi Xe,可能重复: 我需要从用户的文本创建一个文件夹(unicode字符串类型)。 windows下文件夹名称的某些字符是非法字符 您知道检查文件夹名称是否有效的Delphi函数吗? 或者最好的,将字符串转换为有效的文件夹名称(剥离或转换无效字符) 谢谢你的帮助 编辑:请参阅下面关于非法关键字的注释。有关详细信息,请参阅StackOverFlow答案 希望这有助于和有什么你正在寻找 编辑:按流行需求删除About.com链接!如果您需要该链接,请查看注释您可以使用StrUtils单元中的Contain
我需要从用户的文本创建一个文件夹(unicode字符串类型)。 windows下文件夹名称的某些字符是非法字符 您知道检查文件夹名称是否有效的Delphi函数吗?
或者最好的,将字符串转换为有效的文件夹名称(剥离或转换无效字符) 谢谢你的帮助
编辑:请参阅下面关于非法关键字的注释。有关详细信息,请参阅StackOverFlow答案 希望这有助于和有什么你正在寻找
编辑:按流行需求删除About.com链接!如果您需要该链接,请查看注释您可以使用
StrUtils
单元中的ContainsStr
和ReplaceStr
轻松完成此操作。我不知道是否有API方法,也许其他人可以回答这个问题。你可以试试这段代码
if CreateDir(DirectoryName) then
begin
Showmessage('Valid directory name and directory created');
end
else
begin
Showmessage('Failed');
end;
重要提示:这不仅仅是一个禁止字符的问题,还有非法单词:“CON”,“COM”,“LPT”,“NUL”,“PRN”,“AUX”。。。我必须手动检查吗?@TridenT我不知道有哪个函数会给你这些非法名称。你有什么文件可以把他们说出来吗?检查时,请记住在INSTIVE
SameText
中使用用例@三叉戟这个问题是重复的(见上面的评论),因为它发生了。迪格找到了原物。Alexandre给出的答案应该能帮你完成任务。@TridenT-你缺少需求。你打算打开一个文件吗?写验证它是否存在?在这组需求下,CON、COM、LPT等仍然是有效的文件名,您不能使用它们来命名文件。创建一个名为“C:\”的文件也是如此——这是有效的,但不能用它来命名文件。请说得更具体些。@Leonardo,正如我写的:从字符串创建文件夹。这不是一个好的解决方案,因为创建目录可能会由于其他原因失败(例如访问权限)。在这里无法区分这一点。除此之外,OP还提到修改文件夹名称。这不是否决投票的动机。OP声明他想要创建目录;因为无法做到这一点而失败其实是意料之中的事,不是吗?我没有投反对票。似乎有人投了这个票来弥补落选。第一个答案看起来是一个很好的开始。about.com的答案太糟糕了。@Leonardo Herrera-我加了两个来表示完整性第一个值a+1,但在我看来第二个值a-1:-)about.com链接-