Your terminology is a bit wonky, which is making it hard to answer your question. You don't upload files into a list control, you upload them to a atorage device. Best guess given what you're asking is to use SetItemData and GetItemData and store the path when you add the file name to the list.
Ok i got a picture in the attachments for understanding..
I put a red box into the list control that gets the files of the server with FTPFINDFIRSTFILE AND FTPFINDNEXTFILE
the blue box list control is the file i want to upload..either single of multiple selections
hopefully this helps
GCDEF understands what you are trying to do, but you aren't understanding his reply. What many folks try to do is stick all the data into a control and then read the data out of the control. Like they may want to populate a list control with different data in multiple columns and then when they need to access the data, they read the data out of the column(s) for the selected item.
While this approach works (kind of) it is very limited because you can only read data that is displayed (not to mention it is awfully slow when dealing with large datasets).
Another approach is to use the approach that GCDEF suggested which uses SetItemData/GetItemData (or SetItemDataPtr). What this does is tie the control item to a pointer of an underlying object in memory. For example, consider a list of items stored in a collection in memory and a list control is populated using the list. You can associate each item in the control to the underlying list item with SetItemDataPtr. When a user selects a list item in the control, the item in the collection can be access by using the GetItemDataPtr. So now you have access to an item's data (without have to display that data in the control).
Hopefully that makes more sense.
If we take this idea one step further, you can set the control up for 'virtual' operation, where the control 'asks' for the data from an underlying collection as the user scrolls up and down on the control. The control only temporarily populates the visible area of the control (plus maybe a bit more). This results in really fast scrolling and a very responsive ui - plus it can handle large data sets.