File.CreateTempFile [
^] can be used to create unique file names, but only 65535, and only if you leave the files with that name in the temp folder. A GUID is unweildy, but that's why it's guarenteed unique. If you want shorter filenames, you can shorten the GUID, but then you need to check for another file of the same name, and if you're doing that, you may as well create files by hand. Another option is to use a number sequence and store it in your DB, if you have one. Then you can make a transaction wrapped call to increment that number for each file.