C#FileUpload SaveAs Casing

时间:2013-05-10 14:00:39

标签: c# asp.net

我正在使用FileUpload控件并对SaveAs method有疑问。如果上传的文件存在,我知道它将覆盖它,但如果文件名的外壳不同,它是使用现有文件名还是新文件名。

示例

  

如果我在服务器上有一个名为TEST.txt的文件,并且有一个名为的新上传文件   test.txt进来了,会用哪个名字?

2 个答案:

答案 0 :(得分:3)

答案取决于操作系统的行为方式。

使用Windows操作系统时,文件将被覆盖。从本质上讲,就Windows而言,文件名不区分大小写,至少是为了识别它们。如果被覆盖,Windows也将使用新的文件名(自己尝试 - 将具有不同案例的文件复制到文件夹中,看看会出现什么情况),尽管旧版本的操作系统使用原始文件名(XP也是如此)。

在Linux OS上,将创建一个新文件。 Linux / Unix / iOS(以及几乎所有的Unix变体)将具有不同外壳的文件视为不同的文件。

答案 1 :(得分:0)

也许这并不能完全回答这个问题,但我认为如果不对替换后使用的文件名做出任何假设会更安全。

因此我建议您仅以小写的方式保存上传的文件,这样如果您切换服务器(操作系统),您将有后备保护,这将为您节省一些调试。