Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法写入钛合金中的文件_Javascript_Titanium_Titanium Mobile - Fatal编程技术网

Javascript 无法写入钛合金中的文件

Javascript 无法写入钛合金中的文件,javascript,titanium,titanium-mobile,Javascript,Titanium,Titanium Mobile,我在Tianium Studio中无法写入文件。 特别是.json文件。代码已编译通过,未引发任何异常 这是我的相关代码部分,在添加元素之前,我首先将文件解析为var,并将其字符串化以写回。 阅读是完美的,添加元素也是完美的,写作过程才有问题 var file = Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory,'data.json'); var jsontext = file.read().toString(); v

我在Tianium Studio中无法写入文件。 特别是
.json
文件。代码已编译通过,未引发任何异常

这是我的相关代码部分,在添加元素之前,我首先将文件解析为var,并将其字符串化以写回。 阅读是完美的,添加元素也是完美的,写作过程才有问题

var file = Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory,'data.json');
    var jsontext = file.read().toString();
    var jsondoc = JSON.parse(jsontext);

    jsondoc['feedlist'].push({
        "picloc":imagename,
        "title":titlef.value,
        "desc1":descf1.value,
        "desc2":descf2.value,
        "desc3":descf3.value
        });

    jsontext = JSON.stringify(jsondoc);

    file.write(jsontext); // write(data,[append])
注意:我查阅了一些文档并进行了一些自己的搜索,一些人建议使用“Filestream”代替普通文件以及
。close()
,我还没有让它们工作,但如果有人知道如何使其工作,它可能是解决方案的指针

提前谢谢


编辑:这个问题被标记为重复,最初我认为这是两个独立的问题,一个是关于仅仅将文本写入文件。另一个是将event.media(图片)解析为文件。

我现在让它工作了,问题是我试图写入只读目录中的文件

Ti.Filesystem.resourcesDirectory:应用程序资源所在的只读目录

Ti.Filesystem.applicationDataDirectory:应用程序可访问的读/写目录。将应用程序特定的文件放在此目录中。 此目录的内容将保持不变 直到您删除文件或用户卸载应用程序

这是我的代码,目录被修改了

var sesfile = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory,'data2.json');
var jsontext = sesfile.read().toString();
var jsondoc = JSON.parse(jsontext);

jsondoc['feedlist'].push({
    "picloc":imagename,
    "title":titlef.value,
    "desc1":descf1.value,
    "desc2":descf2.value,
    "desc3":descf3.value
    });
jsontext = JSON.stringify(jsondoc);
        
sesfile.write(jsontext,false);
如果您无法找到数据目录,只想从那里加载文件。 (在我的情况下,它不存在于project中,也不会使用Webpreview编译创建) 您可以先执行像这样的引导式指令

var rdfile = Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory,'data.json');
var sesfile = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory,'data2.json');
var jsontext = rdfile.read().toString();
var jsondoc = JSON.parse(jsontext);
sesfile.write(jsontext); 

希望它能帮助那些像我一样犯业余错误的人。

可能重复你为什么问了两次这个问题?我认为这是两个独立的问题,一个是关于将文本写入文件。另一种方法是将event.media(图片)解析为文件。不管怎样,在你的指导下,我已经解决了这个特殊的问题,我会尽快发布我的代码。