Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#文件上载另存为外壳_C#_Asp.net - Fatal编程技术网

C#文件上载另存为外壳

C#文件上载另存为外壳,c#,asp.net,C#,Asp.net,我正在使用FileUpload控件,对SaveAs方法有疑问。如果上传的文件存在,我知道它会覆盖它,但是如果文件名的大小写不同,它是使用现有文件名还是新文件名 示例 如果我在服务器上有一个名为TEST.txt的文件和一个名为 输入test.txt时,将使用哪个名称 答案取决于操作系统的行为 使用Windows操作系统时,文件将被覆盖。本质上,就Windows而言,文件名是不区分大小写的,至少是为了识别它们。如果被覆盖,Windows也会使用新的文件名(自己试试——将一个不同大小写的文件复制到一个

我正在使用
FileUpload
控件,对
SaveAs方法有疑问。如果上传的文件存在,我知道它会覆盖它,但是如果文件名的大小写不同,它是使用现有文件名还是新文件名

示例

如果我在服务器上有一个名为TEST.txt的文件和一个名为 输入test.txt时,将使用哪个名称


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

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


在Linux操作系统上,将创建一个新文件。Linux/Unix/iOS(以及几乎所有的Unix变体)将具有不同大小写的文件视为不同的文件。

也许这并不能完全回答这个问题,但我认为更安全的做法是不要对替换后将使用的文件名做任何假设


因此,我建议您仅以小写形式保存上传的文件,这样,如果您切换服务器(OS),您的背部将得到保护,这将为您节省一些调试。

什么是
casing
的意思..@Rahul-大写/小写。是的,很抱歉造成混淆!这是一个Windows服务器,我知道它将被覆盖,但不确定它是否会保留原始文件或新文件的大小写。@katastraphi-如果您没有特别删除它,原始文件将被覆盖,尽管旧版本会保留原始文件。虽然我同意我们应该保持一致,首席开发人员希望能够判断用户是否更新了文档。当他们最初创建它时,它将全部为大写,然后编辑将其移动到小写。上传后,将对其进行扫描,然后将其移动到其他文件夹。如果他们在扫描之前进行编辑,我们需要知道将使用哪个文件名。我想你们看得不对,但这只是我的观点。对于您在上面的评论中描述的用例,我会在每次上传文件内容时创建一个散列(md5现在很快),如果第二个(或者在有多个更新的情况下是后面的任何一个)散列与第一个(或者在有多个更新的情况下是最后一个)不同,您就会知道文件已更改。不幸的是,对于系统的设置方式来说,如果不做很多更改,这是行不通的。我没有参与过设置,所以我只是想确定客户希望它如何工作。