关于 c#:file 重命名问题?

file renaming problem?

在 C# 中重命名文件:

1
2
File.Move(source,Destination);
            File.Delete(source);

它执行成功,但是当我再次尝试重命名文件时,系统给出了这个异常:
该进程无法访问该文件,因为它正被另一个进程使用。
我找不到这个在哪里使用?当我进一步调试错误时,它显示类名在 w3wp.exe 的进程中,即 IIS。接下来我该怎么办?
得到

1
2
3
4
5
6
7
8
9
10
11
12
13
14
foreach (string folder in folder)
{
 FileSystemItem item = new FileSystemItem();
 DirectoryInfo di = new DirectoryInfo(folder);
 item.Name = di.Name;
 item.FullName = di.FullName;
 item.Path = path +"\" + item.Name;
 item.CreatedDate = di.CreationTime;
 item.IsFolder = true;
 item.Extension ="
folder";
 listFolder.Add(item);
}
docList = CreatXmllist(listFolder);
return docList

这就是我获取文件夹列表的方式,然后将其返回到 xml。然后在文件夹中,当我单击它时我会得到文件

现在获取图像:这是代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public xml (string path, List<l> one)
    {

        List< T > tt = new List< T >();
        List< T > SessionList = new List< T >();
        string[] files = Directory.GetFiles(HttpContext.Current.Request.PhysicalApplicationPath + path);

        foreach (string file in files)
        {
            FileSystemItem item = new FileSystemItem();
            FileInfo i = new FileInfo(file);
            string  a = i.LastWriteTime.ToString();
            var thumbnails = from a in b where a.Name == fi.Name select t;

            if (fi.Name !="a")
                if (t.Count() == 0)
                {
                    r session r = new r();
                    r.aName = fi.aName;
                    SessionList.Add(r);
                    fi.Exists;
                }
                else
                    t.Add((T)t.First());

        }


你不需要在重命名过程中调用 File.Delete,如果你做了一个副本,你会需要它。


创建一个 FileInfo 实例,您可以在其中多次重命名它。

1
2
3
4
5
6
FileInfo file = new FileInfo(source);
file.MoveTo(destination);

// execute more code

file.MoveTo(destination2)


尝试使用 FileShare 枚举器。然后尝试用 monesharing 打开一个文件,关闭句柄,如果没有异常就可以移动文件了。

http://msdn.microsoft.com/de-de/library/system.io.fileshare.aspx

它包含读取、写入等方法。