Извлечь файл 7z в coldfusion

Может ли кто-нибудь помочь мне, предложив функцию для извлечения файла .7z в ColdFusion? Я использую ColdFusion 10 и код на основе cfscript. Действительно, у нас есть тег cfzip, но он извлекает только файлы .zip и .jar.


person rique    schedule 31.05.2013    source источник


Ответы (2)


Вы можете использовать cfexecute, который, к сожалению, недоступен в cfscript, для запуска экстрактора 7z на вашем сервере и выполнения различных команд для извлечения файла в выбранное вами место.

К счастью для вас, кажется, Рэймонд Камден подробно остановился на этом:

http://www.raymondcamden.com/index.cfm/2011/2/21/Working-with-RARs-in-ColdFusion

person Jarede    schedule 31.05.2013

Функция для распаковки файла .rar в указанном месте назначения. Используйте тег cfexecute для запуска rar exe в командной строке

<cffunction name="Unrar" access="public" returnType="boolean" output="false">
    <cfargument name="archivefile" type="string" required="true">     
    <cfargument name="destination" type="string" required="true">
    <cfset var exeName = "">
    <cfset var result = "">
    <cfset var errorresult = "">


    <cfif not fileExists(arguments.archivefile)>
        <cfthrow message="Unable to work with #arguments.arvhiefile#, it does not exist.">
    </cfif>

    <cfif findnocase(".rar",arguments.archivefile)>

        <cfset var exeName = expandpath("WinRAR\rar.exe")>
        <cfset var args = []>
        <cfif directoryExists(#arguments.destination#)>             
            <cfset args[1] = "x +o">
        <cfelse>
            <cfset directoryCreate(#arguments.destination#)>                
            <cfset args[1] = "x">
        </cfif>
        <cfset args[2] = arguments.archivefile>
        <cfset args[3] = "#arguments.destination#">         
    </cfif>
    <cfexecute name="#exeName#" arguments="#args#" variable="result" errorvariable="errorresult" timeout="99" />

    <cfif findNoCase("OK All OK", result)>
        <cfreturn true>
    <cfelse>
        <cfreturn false>
    </cfif>        
</cffunction>
person coldfusiondevshop    schedule 31.05.2013