メソッドを使用して、あるフォルダから別のフォルダに画像ファイルをコピーしますFile.Copy()
。
コピーした画像ファイルをフォルダに貼り付ける前に、一意のファイル名を付ける必要があります。
これをどのように実装できるか考えていますか?
使用できますPath.GetTempFileName
詳細については、http://msdn.microsoft.com/en-us/library/system.io.path.gettempfilename (v = vs.100).aspxをご覧ください。
リンクからの引用:
「ディスク上に一意の名前のゼロバイトの一時ファイルを作成し、そのファイルのフルパスを返します。」
Eyossiの答えは受け入れられた解決策であるはずですが、別の選択肢です:-
guidを使用して、一意の名前を作成できます(「このような識別子は、複製される可能性が非常に低いです。」):
Dim filename As String = Guid.NewGuid().ToString + ".png"
これを行う別の方法があります
fileName = User_Appended_File_Name & "_" & DateTime.Now.ToString("yyyyMMdd_HH_mm_ss")
それはかなり識別可能なファイル名を作成し、それがいつ作成されたか、大きな古いタイムスタンプを知るという追加の利点があります。
編集:ファイルの保存速度が1秒より速い場合は機能しません。
の使用をお勧めし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
ファイル名として現在の日時を使用できます。