TC官方合作论坛

标题: 创建文本和删除文本的问题 [打印本页]

作者: 非一般的感觉    时间: 2015-5-10 11:26
标题: 创建文本和删除文本的问题
我写了一段创建文本的命令,一共创建一个文件夹,然后在文件夹里面创建9个文本,然后另一段代码是删除文本然后再删除文件夹的,可是问题来了,文件创建成功后删除的时候系统提示文本文件正在被程序占用着,无法完成删除,我起初的时候以为是创建文本命令完成后会使文本出于打开状态,我就加了一段关闭文本的命令,结果都是提示文本关闭失败,那么意思就是说文本是出于关闭状态的,那么为什么还会提示文件被占用呢?   第一次打开脚本创建文件成功后,无法删除,然后关掉脚本,再打开,创建文本,提示文件已存在,然后再删除,就能成功删除,,,,,最重要的一点就是我里面在删除后还同时判断了文件是否存在,也就是说存在就输出删除失败,反之则删除成功,,,,,,,在第一次打开脚本删除的时候,输出是删除成功的,可是其实是删除失败了,这一点是我想不通的。第二次打开脚本再删除的时候输出是删除成功的,结果的确是删除成功了······························问题到底是出在哪里了我想不通,唯一的点估计就是脚本在创建完文本后就在占用文本,所有无法删除,那么这个占用该怎么解决呢????还望各位大牛帮忙提点建议···指导指导

作者: 非一般的感觉    时间: 2015-5-10 11:33
功能 创建文件夹()
    如果(文件是否存在("d:/牛粪自动"))
        调试输出("文件夹已存在")
        遍历(变量 i = 1; i < 10; i++)
            是否存在=文件是否存在("d:/牛粪自动\\"&i&".txt")
            如果(是否存在==真)
                调试输出("第"&i&"个文件已存在")
            否则
                文件创建("d:/牛粪自动\\"&i&".txt")
                调试输出("创建第"&i&"个文本")
            结束
        结束
    否则
        文件夹=文件夹创建("d:/牛粪自动")
        如果(文件夹==真)
            调试输出("文件夹创建成功")
            遍历(变量 i = 1; i < 10; i++)
                是否存在=文件是否存在("d:/牛粪自动\\"&i&".txt")
                如果(是否存在==真)
                    调试输出("第"&i&"个文件已存在")
                否则
                    文件创建("d:/牛粪自动\\"&i&".txt")
                    调试输出("创建第"&i&"个文本")
                结束
               
            结束
        否则
            调试输出("文件夹创建失败")
        结束
    结束
    调试输出("创建步骤已完成")
结束

功能 删除()   
    遍历(变量 i = 1; i < 10; i++)
        文件关闭("d:/牛粪自动\\"&i&".txt")
        调试输出("成功关闭第"&i&"个文本")
        等待(20)
    结束
    遍历(变量 i = 1; i < 10; i++)
        如果(文件是否存在("d:/牛粪自动\\"&i&".txt"))
            如果(文件删除("d:/牛粪自动\\"&i&".txt"))
                如果(文件是否存在("d:/牛粪自动\\"&i&".txt"))
                    调试输出("删除第"&i&"个文本失败")
                否则
                    调试输出("成功删除第"&i&"个文本")   
                结束
            否则
                //               调试输出("删除第"&i&"个文本失败")
            结束
        否则
            //            调试输出("文件删除完毕")
        结束
        等待(20)
    结束
    如果(文件是否存在("d:/牛粪自动"))
        如果(文件夹删除("d:/牛粪自动"))
            调试输出("文件夹删除成功")
        否则
            调试输出("文件夹删除失败")
        结束
    否则
        调试输出("文件夹不存在")
    结束
结束






现在贴上代码,
作者: 非一般的感觉    时间: 2015-5-10 11:41
功能 牛粪自动_销毁()
    线程关闭(线程句柄)
    线程关闭(线程二)
    线程关闭(线程三)
    等待(20)
    遍历(变量 i = 1; i < 10; i++)
        关闭返回=文件关闭("d:/牛粪自动\\"&i&".txt")
        如果(关闭返回==真)
            调试输出("成功关闭第"&i&"个文本")
        否则
            调试输出("关闭失败")
        结束
        等待(20)
    结束
    关闭返回=文件关闭("d:/牛粪自动")
    等待(20)
    遍历(变量 i = 1; i < 10; i++)
        变量 删除文件=文件删除("d:/牛粪自动\\"&i&".txt")
        如果(文件是否存在("d:/牛粪自动\\"&i&".txt"))
            调试输出("成功删除第"&i&"个文本")
        否则
            调试输出("文件删除完毕")
        结束
    结束
    等待(20)
    变量 删除文件夹=文件夹删除("d:/牛粪自动")
    如果(文件是否存在("d:/牛粪自动"))
        调试输出("文件夹删除失败")
    否则
        调试输出("文件夹删除成功")
    结束
结束


删除的代码是这一段,上面那一段删除代码是没有启用的!!!!
作者: 这论坛不错    时间: 2015-5-10 12:48
创建成功后会返回文件句柄,必须关闭文件句柄,否则会显示被占用着
变量 文件句柄=文件创建("d:\\1.txt","读")//属性默认值:"创建文件"
如果(文件句柄==0)
  消息框("文件创建失败")
否则
  消息框("文件创建成功")
  文件关闭(文件句柄)
结束

作者: 花落莫相离    时间: 2015-5-10 16:18
本帖最后由 花落莫相离 于 2015-5-10 16:19 编辑
  1. 文件创建("d:/牛粪自动\\"&i&".txt")
复制代码
上边这句,改成试试
  1. 变量 句柄&i=文件创建("d:/牛粪自动\\"&i&".txt")
  2. 文件关闭(句柄&i)
复制代码





欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1