Unfortunately no. There is no way to specify a different folder during the file transfer. You can specify a different ftp location, however sub folders are also not accepted there either.
You will basically always be locked into the root folder. In the enhanced ftp location it will depend on the upload/download selection.
Extract SOAP Packet
<ExtractRequestMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
<Requests>
<ID>bb94a04d-9632-4623-be47-daabc3f588a6</ID>
<Parameters>
<Parameter>
<Name>DECustomerKey</Name>
<Value>OrderHistory</Value>
</Parameter>
<Parameter>
<Name>HasColumnHeaders</Name>
<Value>true</Value>
</Parameter>
<Parameter>
<!--This parameter is required, always pass a value of 0-->
<Name>_AsyncID</Name>
<Value>0</Value>
</Parameter>
<Parameter>
<Name>OutputFileName</Name>
<Value>MyExtractFile.csv</Value>
</Parameter>
<Parameter>
<!--This parameter is required, always pass value shown below-->
<Name>StartDate</Name>
<Value>1/1/1900 1:00:00 AM</Value>
</Parameter>
<Parameter>
<!--This parameter is required, always pass value shown below-->
<Name>EndDate</Name>
<Value>1/1/1900 1:00:00 AM</Value>
</Parameter>
</Parameters>
</Requests>
</ExtractRequestMsg>
File Transfer
<PerformRequestMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
<Options/>
<Action>Start</Action>
<Definitions>
<ns1:Definition xmlns:ns1="http://exacttarget.com/wsdl/partnerAPI" xsi:type="ns1:FileTransferActivity">
<ns1:ModifiedDate xsi:nil="true"/>
<ns1:ObjectID xsi:nil="true"/>
<ns1:CustomerKey>12345</ns1:CustomerKey>
</ns1:Definition>
</Definitions>
</PerformRequestMsg>