C#: What is the fastest way to generate a unique filename?

前端 未结 8 1119
别那么骄傲
别那么骄傲 2020-12-23 20:42

I\'ve seen several suggestions on naming files randomly, including using

System.IO.Path.GetRandomFileName()

or using a

Sy         


        
8条回答
  •  天涯浪人
    2020-12-23 21:17

    I hope this self iterative function will help someone to generate a unique filename.

    public string getUniqueFileName(int i, string fullpath, string filename)
    {
        string lstDir = fullpath.Substring(0, fullpath.LastIndexOf('\\'));
        string name = Path.GetFileName(fullpath);
        string path = fullpath;
    
        if (name != filename)
            path = Path.Combine(lstDir, filename);
    
        if (System.IO.File.Exists(path))
        {
            string ext = Path.GetExtension(name);
            name = Path.GetFileNameWithoutExtension(name);                
            i++;
            filename = getUniqueFileName(i, fullpath, name + "_" + i + ext);
        }
    
        return filename;
    }
    

提交回复
热议问题