4

メソッドを使用して、あるフォルダから別のフォルダに画像ファイルをコピーしますFile.Copy()

コピーした画像ファイルをフォルダに貼り付ける前に、一意のファイル名を付ける必要があります。

これをどのように実装できるか考えていますか?

4

5 に答える 5

5

使用できますPath.GetTempFileName

詳細については、http://msdn.microsoft.com/en-us/library/system.io.path.gettempfilename (v = vs.100).aspxをご覧ください。

リンクからの引用:

「ディスク上に一意の名前のゼロバイトの一時ファイルを作成し、そのファイルのフルパスを返します。」

于 2012-07-29T08:48:23.847 に答える
5

Eyossiの答えは受け入れられた解決策であるはずですが、別の選択肢です:-

guidを使用して、一意の名前を作成できます(「このような識別子は、複製される可能性が非常に低いです。」)

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

これを行う別の方法があります

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

それはかなり識別可能なファイル名を作成し、それがいつ作成されたか、大きな古いタイムスタンプを知るという追加の利点があります。

編集:ファイルの保存速度が1​​秒より速い場合は機能しません。

于 2012-07-30T16:30:45.047 に答える
3

の使用をお勧めしPath.GetRandomFileName()ます。

以前に受け入れられた答えはPath.GetTempFileName、ファイルを作成するを使用することでした。質問で述べられているように、そのファイルがファイルコピー操作のターゲットになる場合、これは理想的ではありません。

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 に答える