1

私は現在、iPad の問題に対処しています。私のサイトを介して画像をアップロードすると、画像の名前が「image.jpg」に変更されます。これは、同じディレクトリにあるかのように問題が発生する可能性があるためです。ファイルの名前を変更するのをやめるか、ファイルの最後に増分番号を追加しますが、これを正しく機能させることはできません。

この小さなコード スニペットを使用して修正を試みましたが、うまくいかないようです。

if(File.Exists(filename))
{
    fileName = String.Format("{0}({1}", fileName, count++);
    inputFile.PostedFile.SaveAs( String.Format( "{0}\\{1}", directory, fileName ) );
}
else
{
    inputFile.PostedFile.SaveAs( String.Format( "{0}\\{1}", directory, fileName ) );
}
                    }
4

4 に答える 4

1

File.Exists(filename)ファイルが存在するかどうかを確認するために、完全なファイル パスが必要です。

しかし、行inputFile.PostedFile.SaveAsでは、ファイルパスを連結しています

directory + "//" + fileName.

あなたfileNameは実際にはフルパスで構成されていますか、それとも拡張子付きの実際のファイル名だけですか?

fullPathfileNameで構成されinputFile.PostedFile.SaveAsている場合、無効な場所を指すため機能しません。fileName完全なパスではなくファイル名のみで構成されている場合は、機能しFile.Existsません。いずれにせよ、あなたの論理には欠陥があります。

何を変更すればよいかわかりました。

また、カウンターを使用する代わりに、単に追加DateTime.Now.ToString("hhmmddttmmss")fileNameて一意にします。

于 2013-05-28T07:46:26.133 に答える