1

コーディング プラットフォーム: ASP.NET 4.0 C#

次のシナリオを検討してください。

を使用して、「StackOverflow.doc」という名前のファイルを Documents フォルダーにアップロードしていますasp:FileUpload
しかし、フォルダーのドキュメントには既に「StackOverflow.doc」という名前のファイルがあります。
この状況では、ファイルの名前を StackOverflow(1).doc に変更したいと考えています。

GUID を使用するか、一時的な名前を割り当てて、ファイル名を一意にする方法を知っています。
しかし、私が必要としているのは、Windows エクスプローラーのようなソリューションです。それに近づくための最良の方法はどれですか?

PS: ソリューションは冗長である必要があります。つまり、StackOverflow.doc と StackOverflow(1).doc という名前のファイルがある場合、名前を変更したファイルは StackOverflow(2).doc にする必要があります。

4

1 に答える 1

3

あなたが求めているようにファイル名を取得するための1つのアプローチを次に示します(簡潔にするためにファイルパスロジックは含まれていません):

string fileName = downloadFileName;
string fileExt = downloadFileExtention;

string fullFileName = string.Format("{0}.{1}", fileName, fileExt);

int counter = 0;
while(File.Exists(fullFileName))
{
    counter++;
    fullFileName = string.Format("{0}({1}).{2}", fileName, counter, fileExt);
}

// Write the file to fullFileName
于 2011-04-03T19:54:36.057 に答える