Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.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_File Handling - Fatal编程技术网

C#重命名文件时的缓存问题

C#重命名文件时的缓存问题,c#,asp.net,file-handling,C#,Asp.net,File Handling,我面临着一个非常奇怪的问题:重命名图像(请参见截图) 单击向上/向下按钮时,我会重命名两个图像以交换它们 前两次、三次效果都很好,但当我重复这个过程时,它会停止在浏览器中更改图像 进一步调查后,我发现我的代码运行得很好,但浏览正在缓存图像,这就是它们不改变位置的原因 当我按cTRL+F5时,我会看到更改的图像,或者如果我移动到任何其他页面并返回到同一页面,我会再次看到正确的图像顺序,但在同一页面上不会发生这种情况:( 有人能解释一下吗?我怎样才能解决这个问题 交换代码: protected vo

我面临着一个非常奇怪的问题:重命名图像(请参见截图) 单击向上/向下按钮时,我会重命名两个图像以交换它们

前两次、三次效果都很好,但当我重复这个过程时,它会停止在浏览器中更改图像

进一步调查后,我发现我的代码运行得很好,但浏览正在缓存图像,这就是它们不改变位置的原因

当我按cTRL+F5时,我会看到更改的图像,或者如果我移动到任何其他页面并返回到同一页面,我会再次看到正确的图像顺序,但在同一页面上不会发生这种情况:(

有人能解释一下吗?我怎样才能解决这个问题

交换代码:

protected void rptImages_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            int id = Convert.ToInt32(Request.QueryString["Id"]);
            String path = Server.MapPath(e.CommandArgument.ToString());
            if (e.CommandName == "Up")
            {

                SwapImagesOnUpClick(id, path);
            }

            if (e.CommandName == "Down")
            {

                SwapImagesOnDownClick(id, path);

            }
}

public void SwapImagesOnUpClick(int id, string path)
        {
               string oldFileName;
                string newFileName;
                string tempFileName;

                string basicPath = path.Substring(0, path.LastIndexOf('\\'));
                oldFileName = path.Substring(path.LastIndexOf('\\') + 1);
                tempFileName = "temp.jpg";


                //get new filename
                string[] fileParts = oldFileName.Split('.');
                newFileName = (Convert.ToInt32(fileParts[0]) - 1).ToString();

                string newFilePath = basicPath + "\\" + newFileName + ".jpg";
                string tempFilePath = basicPath + "\\" + tempFileName;

                // set already existing newfilename to temp
                File.Move(newFilePath, tempFilePath);
                File.Move(path, newFilePath);
                File.Move(tempFilePath, path);






         }

我建议您在生成的页面中将image1的位置更改为image2的位置,而不是重命名文件

如果有人必须面对与我类似的情况,只需附加:“?时间戳”
在image src中,通过这种方式,您的图像不会被缓存,使用ajax实现上下图像功能的一切都将完美运行。

您是否可以在生成的页面中将image1的位置更改为image2,而不是重命名文件?