2016-01-21 81 views
0

我正在使用flash cc创建应用程序。我需要创建几个文本文件来保存一些数据。我可以创建一些数据并将其保存到文本文件中,但我一次只能更新一个文件。我用下面的代码:立即更新多个文本文件

for(var i:int = 1; i <= 5; i++) 
    { 
     var file:File; 
     file = File.documentsDirectory.resolvePath("myApp/" + this["folder" + i] + "/playinfo.txt"); 

     var stream:FileStream = new FileStream(); 
     stream.open(file, FileMode.WRITE); 
     stream.writeUTFBytes("something"); 
     stream.close(); 
    } 

上面的代码似乎只编辑最后一个文件。我究竟做错了什么 ?任何帮助,将不胜感激。我也想用timer而不是for-loop来一次更新单个文本文件。哪种方法会更好?或者有没有更好的解决方案来实现这一目标?

回答

1

我不知道是什么物体this是在(this["folder" + i])范围内,但在取出this参考,并使用folder + i将导致:

myApp 
├── folder1 
│   └── playinfo.txt 
├── folder2 
│   └── playinfo.txt 
├── folder3 
│   └── playinfo.txt 
├── folder4 
│   └── playinfo.txt 
└── folder5 
    └── playinfo.txt 

所以您的代码段变为:

for(var i:int = 1; i <= 5; i++) 
    { 
     var file:File; 
     file = File.documentsDirectory.resolvePath("myApp/" + "folder" + i + "/playinfo.txt"); 
     trace(file.toString()); 
     var stream:FileStream = new FileStream(); 
     stream.open(file, FileMode.WRITE); 
     stream.writeUTFBytes("something"); 
     stream.close(); 
    } 
+0

此[“文件夹”+ i]包含文件夹名称。正如你上面提到的那样,文件夹结构看起来像是一样的,但具有不同的文件夹名称。 – TheGunners

+0

因此,在上下文中,“this”解析为什么? (调试器还是只是一个跟踪语句?) – SushiHangover

+0

它是字符串变量。它包含一堆章节名称。 – TheGunners