当前位置:主页>delphi技巧/代码下载> 文章内容

求助(一个菜鸟问题)

发布时间:2010-07-10 | QQ免费站
1楼: ÿ 是一个Unicode字符,而且带这种字符的文件名,用FindFirst/FindNext得到的文件名会变成?号,如:有人建了一个 abcÿ 的文件夹(后面没有空格,ÿ不是双字节),查找到以后得到的文件名就变成了 abc? 了,以至无法用代码访问这种文件夹了。

这里其实就是建立特殊unicode文件名的问题,谁能帮我?感激不尽!

2楼: 不要用FindFirst/FindNext这两个函数,因为它们不支持Unicode 文件名,可以改用API函数FindFirstFileW/FindNextFileW。

3楼: 这个我也可以想得到,关键是建立 ÿ 文件名,ÿ的WideChar值是多少?
如何用CreateFile建立?本来以为ÿ是#$FF$0或者#$FF00,但不能成功

4楼: //ÿ的WideChar值是多少
WideChar wc = 'ÿ';
ShowMessage(IntToHex(Word(Ord(wc)),4));如管家婆2008++多台电脑用

5楼: 建立包含Unicode 字符名称的文件夹可以用CreateDirectoryW函数,建文件则用CreateFileW函数。因为Delphi 的代码编辑器本身也不支持Unicode,所以如果程序中表示一个包含Unicode 字符的字符串时要用强制类型转换的方法来写。比如要表示abcÿ 这个字符串,就要写成:
var
MyFileName:WideString;

字串2

...
MyFileName:=WideString('ab')+WideChar($00FF);// ÿ这个字符的Unicode 码值为$00FF

6楼: 晕,我试来试去就是没试$00FF:(
谢谢SparkV!谢谢zjan521

7楼: to zjan521:
对不起,刚才没怎么注意, 其实分数应该给您多一些,对不起。

'ÿ'直接复制粘贴到Delphi代码编辑器中会变成 "?",但在记事本中保存成unicode文本,再用其它编辑器就可以看到其值了。