Jez*_*Jez 16 .net c# directory file
.NET Framework定义了一种System.IO.Path.GetTempFileName
方法,可以保证它生成的临时文件名是唯一的.据我所知,虽然极不可能,但这个文件名可能与同一路径上的目录名相同,这意味着我不能假设通过获取该文件的名称,删除它,并创建一个在同名目录中,我将拥有一个具有唯一名称的目录到任何其他目录.更重要的是,我无法指定GetTempFileName
应该在其下创建临时文件的路径.似乎没有与GetTempFileName
目录相同的功能.
是否有GetTempFileName
创建唯一目录的等价物?如果没有,在指定位置创建唯一目录的最佳方法是什么(即.我指定创建唯一目录的路径)?
Dan*_*elB 24
你可以Guid.NewGuid().ToString()
用于那个任务.
EM0*_*EM0 11
Guid有效,但是如果你想要一个更短的目录名(8.3格式),你可以使用GetRandomFileName()
:
public static string GetRandomTempPath()
{
var tempDir = System.IO.Path.GetTempPath();
string fullPath;
do
{
var randomName = System.IO.Path.GetRandomFileName();
fullPath = System.IO.Path.Combine(tempDir, randomName);
}
while (Directory.Exists(fullPath));
return fullPath;
}
Run Code Online (Sandbox Code Playgroud)
string basePath = @"c:\test\"; // or use Path.GetTempPath
string tempPath;
do
{
tempPath = Path.Combine(basePath, Guid.NewGuid().ToString("N"));
} while (Directory.Exists(tempPath));
try
{
Directory.CreateDirectory(tempPath);
}
catch
{
// something went wrong!
}
Run Code Online (Sandbox Code Playgroud)