2011-07-08 45 views
-1

我需要调用一个方法,该方法将创建一个文件并在文件已存在时抛出异常。这听起来可能是偏执狂,但我认为使用诸如string CreateTempFileNameAndReserveForThisProcess()等方法会很有意义。如何“保留”文件名或确保文件名可用的最佳方法

我能得到的最接近的东西是什么?

我目前使用的是:

string tempFileName = Path.GetTempFileName(); 
File.Delete(tempFileName); 
// Call the function that requires the file not to exist. 
+1

if(File.Exists(path))? –

+0

您基本上需要一个方法来生成一个像GetTempFileName()这样的唯一名称,但不会创建它,对吧?给定一个唯一生成的字符串,这会解决你的问题吗? –

+0

@Mr。我想我可以做到这一点。我听说这不是最可靠的方法。 – Juan

回答

3

如果要保证每个进程/线程等独特的文件,你可以去创建一个文件请参阅本http://msdn.microsoft.com/en-us/library/system.io.path.gettempfilename.aspx

名称Guid.NewGuid().ToString() + ".tmp"

+0

这就是我正在使用的(请参阅我的编辑)。但我打电话的功能要求文件不存在。 – Juan

+1

为什么不使用Guid作为新文件名呢? –

+0

@ jsoldiYiğit是对的 - 这可能是最接近你想要的。 – LarsTech

相关问题