Recent increases in CPU performance have outpaced increases in hard drive performance. As a result, disk operations have become more expensive in terms of CPU cycles spent waiting for disk operations to complete. File prediction can mitigate this problem by prefetching files into cache before they are accessed. However, incorrect prediction is to a certain degree both unavoidable and costly. Battery is a valuable resource in a mobile computing environment. The utility of mobile computers is greatly affected the battery life. Incorrect prediction not only wastes cache space, also consumes battery energy. Consequently, incorrect prediction is more expensive to mobile computers than its counterpart to desktop computers. Last Successor (LS) is a commonly-used predicting algorithm in practice. We present the Program-based Last Successor (PLS) file prediction model that identifies relationships between files through the names of the programs accessing them. Our simulation results show that PLS makes 21% fewer incorrect predictions and roughly the same number of correct predictions as the last-successor model. Hence, the amount of battery energy wasted on incorrect prediction could be greatly reduced. We finally examine the cache hit ratio of applying PLS to the Least Recently Used (LRU) caching algorithm and show that a cache using PLS and LRU together can perform better than a cache up to 40 times larger using LRU alone. This shows that saving battery energy and increasing performance can be reached at the same time.