如果一个文件夹包含未关闭的文件,则不删除该文件夹 - 页 5 12345678 新评论 Реter Konow 2017.08.28 18:34 #41 Rashid Umarov:我记得你在OOP与程序化编程 的主题中说 "我把所有的动作都写下来了" 。 在这个主题中,我只是相信你是不可信的。没有证据,没有细节--没有必要给服务台写信。 我的删除文件夹的问题仍然没有得到解决。脚本可以工作,但我还没有找到问题的原因。有各种各样的可能性。这可能是也可能不是我的错。我随时准备提供解决问题所需的信息。我对Servicedek的反馈绝不是抱怨。 Реter Konow 2017.08.28 18:39 #42 Rashid Umarov:我记得你在OOP与程序化编程 的主题中说 "我把所有的动作都写下来了" 。 在这个主题中,我只是确信你是不可信的。我不知道你在说什么动作,为什么你认为我不能被信任。我可能已经给出了一个理由,但我不记得具体的地点和时间。无论如何,感谢你坦率地陈述你对我的态度。知道总比不知道好。 Rashid Umarov 2017.08.28 18:45 #43 我希望你真的明白,你已经做了一个很好的有害建议--如何不给服务台写信 Реter Konow 2017.08.28 18:48 #44 Rashid Umarov:我希望你真的明白,你已经做了一个很好的有害的建议--如何不给服务台写信唉,我没有得到它。我试图在我的信息中尽可能地清晰和具体。我提供了细节,给了一个GIF文件,注释了脚本的代码。那么我到底做错了什么? Rashid Umarov 2017.08.28 19:05 #45 你真的不能阅读帮助并正确修改代码吗?那么你怎么能要求一个不同的态度呢?下面是帮助中的代码,添加的内容用黄色标出//+------------------------------------------------------------------+ //| Test_FileOpen.mq5 | //| Copyright 2016, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2016, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- неправильный способ открытия файла string terminal_data_path=TerminalInfoString(TERMINAL_DATA_PATH); string filename=terminal_data_path+"\\MQL5\\Files\\"+"fractals.csv"; int filehandle=FileOpen(filename,FILE_WRITE|FILE_CSV); if(filehandle<0) { Print("Неудачная попытка открыть файл по абсолютному пути"); Print("Код ошибки ",GetLastError()); } //--- правильный способ работы в "файловой песочнице" ResetLastError(); filehandle=FileOpen("fractals.csv",FILE_WRITE|FILE_CSV); if(filehandle!=INVALID_HANDLE) { FileWrite(filehandle,TimeCurrent(),Symbol(),EnumToString(_Period)); FileClose(filehandle); Print("FileOpen OK"); } else Print("Операция FileOpen неудачна, ошибка ",GetLastError()); //--- еще один пример с созданием вложенной директории в MQL5\Files\ string subfolder="Research"; filehandle=FileOpen(subfolder+"\\fractals.txt",FILE_WRITE|FILE_CSV); if(filehandle!=INVALID_HANDLE) { FileWrite(filehandle,TimeCurrent(),Symbol(),EnumToString(_Period)); FileClose(filehandle); Print("Файл должен быть создан в папке "+terminal_data_path+"\\"+subfolder); } else Print("Операция FileOpen неудачна, ошибка ",GetLastError()); //--- Print("Очищаем папку \\MQL5\\",subfolder); FolderClean(subfolder,1); Print("Удаляем папку \\MQL5\\",subfolder); if(!FolderDelete(subfolder,1)) PrintFormat("Ошибка! Не удалось удалить папку \\MQL5\\",subfolder); } //+------------------------------------------------------------------+ Реter Konow 2017.08.28 19:19 #46 Rashid Umarov:你真的不能阅读帮助并正确地修改代码吗?你怎么能要求一个不同的态度呢?以下是帮助中的代码,黄色部分为添加内容如果对我这个人的态度取决于我是否在代码中犯了一个错误,那么我担心这里出了问题......)我还是不大明白你的说法。 我已经在论坛上不止一次地发布了我修改过的代码。我唯一的错误是,在添加了明确的文件封闭后,我忘了重新保存脚本,因此没有看到它解决了我所修改的脚本中的问题。然而,在任何情况下,文档中都没有明确说你必须在创建后关闭文件。过去,正如我之前所说,我的删除文件夹(注意不是文件)的问题仍然存在。这些文件夹中不再有文件,但FolderClean功能 会将它们删除。 原因尚不清楚。 所以,也许我去服务台毕竟是有原因的。谢谢你花这么长的时间来考虑我的问题))。 Vladimir 2017.08.28 19:29 #47 Реter Konow: 谢谢。很高兴我不是唯一面临这个问题的人。我需要解决这个问题(没有它我就无法完成对文件导航器的使用)。我已经写信给Servicedeck。但我也在这里写,以备不时之需。结果是没有白费功夫)。fxsaber:我已经看到这种事情发生了很多次。我发现,在某些时候,Files文件夹以及所有子文件夹和文件都具有只读属性。手动取消选择这个标志并没有帮助。但重新启动终端总是有帮助的。无法让它播放(没有尝试),所以没有向SD报告。加入。自2014年初以来,我有过以前极其罕见的崩溃,在9次试图在这个文件夹中创建一个文件时产生了操作系统 "32共享违反 "的错误,以16毫秒的速度连续进行。我搞不清楚哪里出了问题。我把它归咎于当时MQ中正在进行的 "文件处理功能的彻底升级"。也无法重现,只是巧合的是,刚才在20:12:42出现了这样的故障。随即,几秒钟过去了,进入该文件夹中的一个文件,设法正确地编辑它并保存它。未被发现的失败。在这之前的5年里,崩溃每月发生一次或两次,从2014年2月开始,一定是每周都发生,我没数过多少次。尽管同时运行的终端数量从40-50个减少到35个。 Реter Konow 2017.08.28 19:41 #48 Vladimir:陪伴着。自2014年初以来,我有一个以前极其罕见的故障,在9次试图在这个文件夹中创建一个文件时产生了操作系统 "32共享违反 "的错误,以16毫秒的速度连续进行。我搞不清楚哪里出了问题。我把它归咎于当时MQ中正在进行的 "文件处理功能的彻底升级"。也无法重现,只是巧合地在20:12:42出现了这个故障。随即,几秒钟过去了,进入该文件夹中的一个文件,设法正确地编辑它并保存它。这个故障没有被抓住。在此之前的5年里,这个错误每月出现一到两次,从2014年2月开始,每周都会出现,我数不清有多少次。尽管同时运行的终端数量从40-50个减少到35个。我的所有文件都被删除了,甚至没有明确关闭它们。删掉了,因为我没有创建它们,而且它们以前在Files文件夹内。问题是,为了擦除一个文件,我们需要它的手柄。然而,如果我们没有创建这个文件,而只是把它放在Files文件夹中,我们就不能得到它的句柄,因此我们就不能用FileClose() 关闭它。 同时,我们仍然可以复制或擦除它。然而,在此之后,无论是通过编程还是手动,都不能删除该文件夹。只有在重启终端后才能手动操作。我以后会试着更清楚地再现这个问题,并举出说明性的例子。 Реter Konow 2017.08.28 19:58 #49 Реter Konow:我得到的所有文件都被清除了,即使没有明确关闭它们。删掉了,因为我没有创建它们,而且它们以前在Files文件夹内。问题是,为了删除一个文件,我们需要它的手柄。但是,如果我们没有创建这个文件,而只是把它放到了Files文件夹中,我们就不能得到它的句柄,因此我们就不能用FileClose() 关闭它。 同时,我们仍然可以复制或擦除它。然而,在此之后,无论是通过编程还是手动,都不能删除该文件夹。只有在重启终端后才能手动操作。我以后会试着用清晰的例子更清楚地再现这个问题。这可能是问题的关键所在。 在自定义文件导航器中重命名一个文件夹时,我不能使用FolderRename(),因为它不存在。相反,我把所有的文件和文件夹复制到一个新的文件夹,用一个自定义的名字,并从原来的文件夹(我重新命名)中删除原来的原始文件和文件夹。结果,我首先删除了原文件夹中的所有文件(在将它们复制到新文件夹后),然后使用FolderClean()试图删除原文件夹中剩余的文件夹层次结构,该文件夹已经是空的。这就是错误发生的地方。一些文件夹被删除,但有一两个文件夹仍然存在,就像源文件夹一样。 之后我试着手动擦除它,结果失败了。只有重新启动终端才有帮助。 Vladimir Karputov 2017.08.28 20:01 #50 Реter Konow:这可能是问题的关键所在。 在自定义文件导航器中重命名一个文件夹时,我不能使用FolderRename(),因为它不存在。相反,我把所有的文件和文件夹复制到一个新的文件夹,用一个自定义的名字,并从原来的文件夹(我重新命名)中删除原来的原始文件和文件夹。结果,我首先删除了原文件夹中的所有文件(在将它们复制到新文件夹中后),然后使用FolderClean()试图删除原文件夹中剩余的文件夹层次结构,而该文件夹已经是空的了。这就是错误发生的地方。一些文件夹被删除,但有一两个文件夹仍然存在,就像源文件夹一样。 之后我试着手动擦除它,结果失败了。只有重新启动终端才有帮助。 请继续--只要你在 "小说 "这一迷人的体裁中写作。希望到了第40页左右,你会转到 "技术文献 "这一类。 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我记得你在OOP与程序化编程 的主题中说 "我把所有的动作都写下来了" 。 在这个主题中,我只是相信你是不可信的。
没有证据,没有细节--没有必要给服务台写信。
我的删除文件夹的问题仍然没有得到解决。脚本可以工作,但我还没有找到问题的原因。
有各种各样的可能性。这可能是也可能不是我的错。我随时准备提供解决问题所需的信息。
我对Servicedek的反馈绝不是抱怨。
我记得你在OOP与程序化编程 的主题中说 "我把所有的动作都写下来了" 。 在这个主题中,我只是确信你是不可信的。
我不知道你在说什么动作,为什么你认为我不能被信任。我可能已经给出了一个理由,但我不记得具体的地点和时间。
无论如何,感谢你坦率地陈述你对我的态度。知道总比不知道好。
我希望你真的明白,你已经做了一个很好的有害建议--如何不给服务台写信
我希望你真的明白,你已经做了一个很好的有害的建议--如何不给服务台写信
唉,我没有得到它。我试图在我的信息中尽可能地清晰和具体。我提供了细节,给了一个GIF文件,注释了脚本的代码。那么我到底做错了什么?
你真的不能阅读帮助并正确修改代码吗?那么你怎么能要求一个不同的态度呢?下面是帮助中的代码,添加的内容用黄色标出
你真的不能阅读帮助并正确地修改代码吗?你怎么能要求一个不同的态度呢?以下是帮助中的代码,黄色部分为添加内容
如果对我这个人的态度取决于我是否在代码中犯了一个错误,那么我担心这里出了问题......)
我还是不大明白你的说法。
我已经在论坛上不止一次地发布了我修改过的代码。我唯一的错误是,在添加了明确的文件封闭后,我忘了重新保存脚本,因此没有看到它解决了我所修改的脚本中的问题。然而,在任何情况下,文档中都没有明确说你必须在创建后关闭文件。
过去,正如我之前所说,我的删除文件夹(注意不是文件)的问题仍然存在。这些文件夹中不再有文件,但FolderClean功能 会将它们删除。
原因尚不清楚。
所以,也许我去服务台毕竟是有原因的。
谢谢你花这么长的时间来考虑我的问题))。
谢谢。很高兴我不是唯一面临这个问题的人。我需要解决这个问题(没有它我就无法完成对文件导航器的使用)。我已经写信给Servicedeck。但我也在这里写,以备不时之需。结果是没有白费功夫)。
我已经看到这种事情发生了很多次。我发现,在某些时候,Files文件夹以及所有子文件夹和文件都具有只读属性。手动取消选择这个标志并没有帮助。但重新启动终端总是有帮助的。无法让它播放(没有尝试),所以没有向SD报告。
加入。自2014年初以来,我有过以前极其罕见的崩溃,在9次试图在这个文件夹中创建一个文件时产生了操作系统 "32共享违反 "的错误,以16毫秒的速度连续进行。我搞不清楚哪里出了问题。我把它归咎于当时MQ中正在进行的 "文件处理功能的彻底升级"。也无法重现,只是巧合的是,刚才在20:12:42出现了这样的故障。随即,几秒钟过去了,进入该文件夹中的一个文件,设法正确地编辑它并保存它。未被发现的失败。
在这之前的5年里,崩溃每月发生一次或两次,从2014年2月开始,一定是每周都发生,我没数过多少次。尽管同时运行的终端数量从40-50个减少到35个。
陪伴着。自2014年初以来,我有一个以前极其罕见的故障,在9次试图在这个文件夹中创建一个文件时产生了操作系统 "32共享违反 "的错误,以16毫秒的速度连续进行。我搞不清楚哪里出了问题。我把它归咎于当时MQ中正在进行的 "文件处理功能的彻底升级"。也无法重现,只是巧合地在20:12:42出现了这个故障。随即,几秒钟过去了,进入该文件夹中的一个文件,设法正确地编辑它并保存它。这个故障没有被抓住。
在此之前的5年里,这个错误每月出现一到两次,从2014年2月开始,每周都会出现,我数不清有多少次。尽管同时运行的终端数量从40-50个减少到35个。
我的所有文件都被删除了,甚至没有明确关闭它们。删掉了,因为我没有创建它们,而且它们以前在Files文件夹内。
问题是,为了擦除一个文件,我们需要它的手柄。然而,如果我们没有创建这个文件,而只是把它放在Files文件夹中,我们就不能得到它的句柄,因此我们就不能用FileClose() 关闭它。
同时,我们仍然可以复制或擦除它。然而,在此之后,无论是通过编程还是手动,都不能删除该文件夹。只有在重启终端后才能手动操作。
我以后会试着更清楚地再现这个问题,并举出说明性的例子。
我得到的所有文件都被清除了,即使没有明确关闭它们。删掉了,因为我没有创建它们,而且它们以前在Files文件夹内。
问题是,为了删除一个文件,我们需要它的手柄。但是,如果我们没有创建这个文件,而只是把它放到了Files文件夹中,我们就不能得到它的句柄,因此我们就不能用FileClose() 关闭它。
同时,我们仍然可以复制或擦除它。然而,在此之后,无论是通过编程还是手动,都不能删除该文件夹。只有在重启终端后才能手动操作。
我以后会试着用清晰的例子更清楚地再现这个问题。
这可能是问题的关键所在。
在自定义文件导航器中重命名一个文件夹时,我不能使用FolderRename(),因为它不存在。
相反,我把所有的文件和文件夹复制到一个新的文件夹,用一个自定义的名字,并从原来的文件夹(我重新命名)中删除原来的原始文件和文件夹。结果,我首先删除了原文件夹中的所有文件(在将它们复制到新文件夹后),然后使用FolderClean()试图删除原文件夹中剩余的文件夹层次结构,该文件夹已经是空的。这就是错误发生的地方。一些文件夹被删除,但有一两个文件夹仍然存在,就像源文件夹一样。 之后我试着手动擦除它,结果失败了。只有重新启动终端才有帮助。
这可能是问题的关键所在。
在自定义文件导航器中重命名一个文件夹时,我不能使用FolderRename(),因为它不存在。
相反,我把所有的文件和文件夹复制到一个新的文件夹,用一个自定义的名字,并从原来的文件夹(我重新命名)中删除原来的原始文件和文件夹。结果,我首先删除了原文件夹中的所有文件(在将它们复制到新文件夹中后),然后使用FolderClean()试图删除原文件夹中剩余的文件夹层次结构,而该文件夹已经是空的了。这就是错误发生的地方。一些文件夹被删除,但有一两个文件夹仍然存在,就像源文件夹一样。 之后我试着手动擦除它,结果失败了。只有重新启动终端才有帮助。
请继续--只要你在 "小说 "这一迷人的体裁中写作。希望到了第40页左右,你会转到 "技术文献 "这一类。