首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ColdFusion (openBD引擎)复制文件夹中的文件

使用ColdFusion (openBD引擎)复制文件夹中的文件
EN

Stack Overflow用户
提问于 2013-04-07 09:56:47
回答 1查看 670关注 0票数 0

我被要求解决以下问题:在新创建的文件夹中批量复制3份文件。示例:在文件夹中,假设“D:/TEST_CF/”有20个txt文件。将它们除以3(批-给我们6个剩余的2),创建7个文件夹(以便将3的批放在6个文件夹中,其余的2个文件放在第7文件夹中)。到目前为止,我所做的是创建所需的文件夹。但是,我无法将文件复制到新创建的文件夹中的3批文件中。我应如何处理上述问题?

代码块

代码语言:javascript
复制
<html>
<body>

<cfprocessingdirective pageencoding="UTF-8">

<cfset directory = "D:/TEST_CF/">
<cfdirectory directory="#directory#" name="files" action="list" type="file">
<cfset filecount = #files.RecordCount#>
<cfset divisor = 3>
<cfset division = #filecount# / #divisor#>
<cfset remainder = #filecount# MOD #divisor#>
<cfset folders_to_create = Ceiling(#division#)>

<cfoutput>

    <cfif directoryExists(directory)>
        <cfdirectory action="list" directory="#directory#" name="directories" recurse="true" type="dir" />
        <cfloop query="directories">
            <cfdirectory action="delete" directory="#directory#/#directories.name#" recurse="yes">
        </cfloop>
    </cfif>

    <cfloop from="1" to="#folders_to_create#" index="i">
        <cfdirectory
          action="create"
          directory="#directory#newfolder#i#">
    </cfloop>

    <cfif folders_to_create EQ 1>
        #folders_to_create#&nbsp;folder created
    <cfelse>
        #folders_to_create#&nbsp;folders created
    </cfif>

</cfoutput>

</body>
</html>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-08 04:49:52

正如Steve所说,您需要一个循环2或更好的函数来执行fileMove操作。

Note

  • 逻辑只是一个POC。你可以把它改进成更好的。
  • 我已经在CF10上尝试过这个代码。它也必须在Open上正常工作。

oDirectoryPath = "D:/test_cf/";//原始目录路径文件= DirectoryList(oDirectoryPath,false,'name','*.*');filecount =Arraylen(文件);filePerFolder = 3;numfoldersToCreate =天花板(filecount/filePerFolder);函数moveFilesToThisDirectory(dir,索引){ beginAt = 1;var endAt = begin + 2;var newDir = ARGUMENTS.dir;beginAt = ARGUMENTS.index;if(beginAt neq 1){ endAt =索引* VARIABLES.filePerFolder;beginAt = endAt - (VARIABLES.filePerFolder - 1);if(endAt GT VARIABLES.fileCount){ endAt = VARIABLES.fileCount;} while(beginAt LTE endAt){ FileMove(oDirectoryPath &‘’& filesbeginAt,newDir &‘& filesbeginAt);beginAt = beginAt + 1;}} i= 1;而(I LTE numfoldersToCreate){ newDirectoryName = "#oDirectoryPath#newfolder#i#";DirectoryCreate(newDirectoryName);newDirectoryName索引:i=i+ 1;} switch(numfoldersToCreate){ case 0: WriteOutput(没有创建文件夹);中断;case 1: WriteOutput(‘1文件夹创建’);默认情况: WriteOutput(numfoldersToCreate &“创建的文件夹”);}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15861116

复制
相关文章

相似问题

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