4

我借助File.Copy()方法将图像文件从一个文件夹复制到另一个文件夹。

在将复制的图像文件粘贴到文件夹之前,我需要为其提供唯一的文件名。

知道如何实现吗?

4

5 回答 5

5

Eyossi 的答案应该是公认的解决方案,但另一种选择:-

您可以使用guid创建一个唯一名称(“这样的标识符被重复的可能性非常低。”)

Dim filename As String = Guid.NewGuid().ToString + ".png"
于 2012-07-29T08:54:55.887 回答
5

您可以使用Path.GetTempFileName

更多信息: http: //msdn.microsoft.com/en-us/library/system.io.path.gettempfilename (v=vs.100).aspx

链接中的引用:

“在磁盘上创建一个唯一命名的零字节临时文件并返回该文件的完整路径。”

于 2012-07-29T08:48:23.847 回答
4

这是另一种方法

fileName = User_Appended_File_Name & "_" & DateTime.Now.ToString("yyyyMMdd_HH_mm_ss")

它将创建一个相当可识别的文件名,并具有知道它何时创建的额外优势,即一个大的时间戳。

编辑:如果文件保存速度快于 1 秒,它将不起作用。

于 2012-07-30T16:30:45.047 回答
3

我建议使用Path.GetRandomFileName().

先前接受的答案是使用Path.GetTempFileNamewhich 创建文件。如问题所述,当该文件将成为文件复制操作的目标时,这并不理想。

与 GetTempFileName 不同,GetRandomFileName 不创建文件。当文件系统的安全性至关重要时,应使用此方法而不是 GetTempFileName。

来源: https ://msdn.microsoft.com/en-us/library/system.io.path.getrandomfilename(v=vs.110).aspx

例子:

Imports System.IO

Module Module1

    Sub Main()
        Dim fileName = Path.GetRandomFileName()
        Console.WriteLine("Random file name is " & fileName)
    End Sub

End Module

' This code produces output similar to the following:   
' Random file name is w143kxnu.idj
于 2018-07-09T22:24:29.467 回答
0

您可以使用当前日期时间作为文件名。

于 2012-07-29T08:45:48.677 回答