首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何删除本地json文件?AIR &FlashBuilder4.5

如何删除本地json文件?AIR &FlashBuilder4.5
EN

Stack Overflow用户
提问于 2014-05-26 03:23:58
回答 2查看 1.1K关注 0票数 0

在我的第一个AIR应用程序(使用FlashBuilder4.5)中,我试图

  1. 使用add按钮创建一个JSON文件并将其保存在我的文档中。
  2. 读取我的JSON文件并在AIR应用程序中显示它。
  3. 使用表单更新JSON文件。(这里需要帮助)
  4. 删除JSON文件并使用按钮将其从网格中删除。(这里需要帮助)

这是我的代码:

代码语言:javascript
运行
复制
protected function onInit(event:FlexEvent):void {
            _documentArr = new ArrayCollection();
            var fileDir:File = File.documentsDirectory;
            fileDir = fileDir.resolvePath("data");

            var files:Array = fileDir.getDirectoryListing();

            for ( var i:int = 0; i < files.length; i++ ) {
                var file:File = File( files[i] );

                var inputStream:FileStream = new FileStream();
                inputStream.open(file, FileMode.READ);
                var dataStr:String = inputStream.readUTFBytes(inputStream.bytesAvailable);

                if ( dataStr != "" ) {
                    var data:Object = JSON.parse(dataStr);
                    _documentArr.addItem(data);
                }
            }
        }

这是我的网格:

代码语言:javascript
运行
复制
<s:DataGrid id="grid" width="100%" height="100%" requestedRowCount="4" dataProvider="{_documentArr}"
            click="grid_clickHandler(event)">

    <s:columns>
        <s:ArrayList>
            <s:GridColumn dataField="wText" headerText="Work Order No."></s:GridColumn>
            <s:GridColumn dataField="requestDate" headerText="Date Requested" labelFunction="labelDate"></s:GridColumn>
            <s:GridColumn dataField="client" headerText="Client"></s:GridColumn>
            <s:GridColumn dataField="cPerson" headerText="Contact Person"></s:GridColumn>
            <s:GridColumn dataField="add" headerText="Address"></s:GridColumn>
            <s:GridColumn dataField="pnText" headerText="Plate #"></s:GridColumn>
            <s:GridColumn dataField="bnText" headerText="Body #"></s:GridColumn>
            <s:GridColumn dataField="atText" headerText="Assigned To"></s:GridColumn>   
        </s:ArrayList>
    </s:columns>

</s:DataGrid>

这是我的删除按钮:

代码语言:javascript
运行
复制
protected function onDelete(eventObj:CloseEvent):void {

            if( eventObj.detail == Alert.YES) {
            _documentArr.removeItemAt(grid.selectedIndex);

            }

在这里我要做的是,在创建了一个JSON文件之后,JSON文件将被编码在我的datagrid中。之后,JSON文件将显示在我的数据集中,每当我单击数据集中的selectedIndex并单击delete按钮时,我都希望删除selectedIndex和JSON文件。

(预先谢谢:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-26 09:10:55

删除非常简单--非常类似于保存。我不知道你实际上是在哪里保存这些文件(只提供读取),但是AIR引用可以帮助您:US/FlashPlatform/reference/actionscript/3/flash/filesystem/File.html#deleteFile()

它应该类似于:

代码语言:javascript
运行
复制
var targetDir:File = new File();
var targetFile:File = targetDir.resolvePath("c:/test.txt");
targetFile.deleteFile();

我想您需要帮助更新,因为您还没有进行保存?更新基本上是用包含新数据的文件覆盖旧文件:US/FlashPlatform/reference/actionscript/3/flash/net/FileReference.html#save()

它非常接近:

代码语言:javascript
运行
复制
var targetFile:File = targetDir.resolvePath("c:/test.txt");
targetFile.save("some data");

有不同的方法来做所有这些事情-(A)同步的,不同的格式,各种额外的,但我认为这已经足够你的问题。

票数 0
EN

Stack Overflow用户

发布于 2014-05-28 02:48:46

现在,以下是我的删除按钮的工作方式:

代码语言:javascript
运行
复制
protected function onDelete(eventObj:CloseEvent):void {

            var file:File = File.documentsDirectory;
            var targetfile:File = file.resolvePath("data" + File.separator + grid.selectedItem.wText );

            if( eventObj.detail == Alert.YES) {
                _documentArr.removeItemAt(grid.selectedIndex);
                targetfile.deleteFile();
            }
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23862264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档