potato0001 发表于 2011-8-9 16:49:52

急问win7下无法使用fileopen()创建文件的问题(已解决)

本帖最后由 potato0001 于 2011-9-5 12:36 编辑

同样的代码,XP和2003下均正常
$txt = FileOpen(@ScriptDir & "\" & StringReplace(_NowDate() & "_" & _NowTime(), ":", "") & "测试结果.txt",9)

但在win7下一点反应都没。。。。。。求解决方法,万分感谢!

PS:以管理员身份运行无效。

Joo 发表于 2011-8-9 18:01:43

关了UAC试试

daiyu116 发表于 2011-8-9 18:32:30

回复 1# potato0001

我这里在win7测试是没有问题的,没有反应也没有报错么?

potato0001 发表于 2011-8-9 18:39:05

什么反应都没,也没有产生新文件

daiyu116 发表于 2011-8-9 18:45:06

回复 4# potato0001


#Include <Date.au3>
$txt = FileOpen(@ScriptDir & "\" & StringReplace(_NowDate() & "_" & _NowTime(), ":", "") & "测试结果.txt",9)
MsgBox(0,"返回值",@error)

看看返回的@error 值是不是0?如果是-1说明有错误发生。

netegg 发表于 2011-8-9 23:33:27

创建文件肯定是没问题的,楼主还是按2楼的想法看看权限的问题

daiyu116 发表于 2011-8-10 10:05:38

本帖最后由 daiyu116 于 2011-8-10 18:18 编辑

没有调查就没有发言权,我在win7上测试了,肯定不是UAC权限的问题。
      我今天特地找了一个日语win7测试,发现和LZ的现象有些类似,用5楼的代码测试,返回值也正常,是0,而不是-1.但是肯定是有问题。
      于是我加了一条命令,看一下下面这条代码是不是有问题。
      msgbox(0,"1",@ScriptDir & "\" & StringReplace(_NowDate() & "_" & _NowTime(), ":", ""))
      结果返回的值如下:
      
      但是在中文win7上看看返回的是什么值,如下:
      
      知道windows文件命名规则的都知道,里面是不能包含类似 '\'等等字符的,如下:
      
      再看一下帮助中对_NowDate的解释:按PC格式返回当前日期.我想就不用多说了吧。
       因此,解决方式有两种:
      1、修改 “控制面板-区域和语言-格式-日期和时间格式”中的短日期 格式为不包含 \ 等字符的格式,如 yyyy-MM-dd或者yyyy.M.d等等。
      2、修改代码如下:
      
      #Include <Date.au3>
$txt = FileOpen(@ScriptDir & "\" & StringReplace(_NowDate(), "/", "-") & "_" & StringReplace( _NowTime(), ":", "") & "测试结果.txt",9)
MsgBox(0,"1",@error&@ScriptDir & "\" & StringReplace(_NowDate(), "/", "-") & "_" & StringReplace( _NowTime(), ":", ""))
   
   针对LZ的情况,可能不一定是日文win7环境,但是有可能是文件名称格式的问题。因为第一种方法涉及到改动系统设置了,所以推荐用第二种方式测试一下吧。

leon460 发表于 2011-8-10 10:13:14

回复 7# daiyu116


   佩服,你的思路令人耳目一新

potato0001 发表于 2011-8-10 10:31:03

回复 7# daiyu116

非常感谢,确实没想到是文件名方面的问题,光考虑权限了。等我回家再试试看。

tsui 发表于 2011-8-15 21:52:13

7楼高人哈,我曾经也在CMD下纠结了好久,同样因为日期时间分隔符问题

arkhe 发表于 2011-8-15 23:28:39

真还没有注意这个细节问题
{:face (356):}

我命名文件都是下划线

淡定开源 发表于 2011-8-16 01:02:41

原来如此。

maoying 发表于 2011-9-1 11:01:48

回复 7# daiyu116


    佩服,思路清晰

potato0001 发表于 2011-9-5 12:35:48

刚发现这个帖子还在,之前忘记回了

确实是时间格式问题,感谢daiyu大大

yufei8051 发表于 2012-11-12 09:02:36

正要使用这个,太用用了。谢谢分享
页: [1] 2
查看完整版本: 急问win7下无法使用fileopen()创建文件的问题(已解决)