温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:精美的WEB在线文件管理源码
当前文件:
WebFileManager/FileManager/FileSystemManager.cs[7K,2009-6-12 11:58:18],打开代码结构图
WebFileManager/FileManager/FileSystemManager.cs[7K,2009-6-12 11:58:18],打开代码结构图1using System; 2
using System.Collections.Generic; 3
using System.Text; 4
using System.IO; 5
using System.Web; 6
7
//该源码首发自www.51aspx.com(51aspx.com) 8
9
namespace FileManager 10
{ 11
/// <summary> 12
/// FileSystemManager 13
/// </summary> 14
public class FileSystemManager 15
{ 16
private static string strRootFolder; 17
18
static FileSystemManager() 19
{ 20
strRootFolder = HttpContext.Current.Request.PhysicalApplicationPath; 21
strRootFolder = strRootFolder.Substring(0, strRootFolder.LastIndexOf(@"\")); 22
} 23
24
/// <summary> 25
/// 读根目录 26
/// </summary> 27
/// <returns></returns> 28
public static string GetRootPath() 29
{ 30
return strRootFolder; 31
} 32
33
/// <summary> 34
/// 写根目录 35
/// </summary> 36
/// <param name="path"></param> 37
public static void SetRootPath(string path) 38
{ 39
strRootFolder = path; 40
} 41
42
/// <summary> 43
/// 读取列表 44
/// </summary> 45
/// <returns></returns> 46
public static List<FileSystemItem> GetItems() 47
{ 48
return GetItems(strRootFolder); 49
} 50
51
/// <summary> 52
/// 读取列表 53
/// </summary> 54
/// <param name="path"></param> 55
/// <returns></returns> 56
public static List<FileSystemItem> GetItems(string path) 57
{ 58
string[] folders = Directory.GetDirectories(path); 59
string[] files = Directory.GetFiles(path); 60
List<FileSystemItem> list = new List<FileSystemItem>(); 61
foreach (string s in folders) 62
{ 63
FileSystemItem item = new FileSystemItem(); 64
DirectoryInfo di = new DirectoryInfo(s); 65
item.Name = di.Name; 66
item.FullName = di.FullName; 67
item.CreationDate = di.CreationTime; 68
item.IsFolder = true; 69
list.Add(item); 70
} 71
foreach (string s in files) 72
{ 73
FileSystemItem item = new FileSystemItem(); 74
FileInfo fi = new FileInfo(s); 75
item.Name = fi.Name; 76
item.FullName = fi.FullName; 77
item.CreationDate = fi.CreationTime; 78
item.IsFolder = true; 79
item.Size = fi.Length; 80
list.Add(item); 81
} 82
83
if (path.ToLower() != strRootFolder.ToLower()) 84
{ 85
FileSystemItem topitem = new FileSystemItem(); 86
DirectoryInfo topdi = new DirectoryInfo(path).Parent; 87
topitem.Name = "[上一级]"; 88
topitem.FullName = topdi.FullName; 89
list.Insert(0, topitem); 90
91
FileSystemItem rootitem = new FileSystemItem(); 92
DirectoryInfo rootdi = new DirectoryInfo(strRootFolder); 93
rootitem.Name = "[根目录]"; 94
rootitem.FullName = rootdi.FullName; 95
list.Insert(0, rootitem); 96
97
} 98
return list; 99
} 100
101
/// <summary> 102
/// 读取文件夹 103
/// </summary> 104
/// <param name="name"></param> 105
/// <param name="parentName"></param> 106
public static void CreateFolder(string name, string parentName) 107
{ 108
DirectoryInfo di = new DirectoryInfo(parentName); 109
di.CreateSubdirectory(name); 110
} 111
112
/// <summary> 113
/// 删除文件夹 114
/// </summary> 115
/// <param name="path"></param> 116
public static void DeleteFolder(string path) 117
{ 118
Directory.Delete(path); 119
} 120
121
/// <summary> 122
/// 移动文件夹 123
/// </summary> 124
/// <param name="oldPath"></param> 125
/// <param name="newPath"></param> 126
public static void MoveFolder(string oldPath, string newPath) 127
{ 128
Directory.Move(oldPath, newPath); 129
} 130
131
/// <summary> 132
/// 创建文件 133
/// </summary> 134
/// <param name="filename"></param> 135
/// <param name="path"></param> 136
public static void CreateFile(string filename, string path) 137
{ 138
FileStream fs = File.Create(path + "\\" + filename); 139
fs.Close(); 140
} 141
142
/// <summary> 143
/// 创建文件 144
/// </summary> 145
/// <param name="filename"></param> 146
/// <param name="path"></param> 147
/// <param name="contents"></param> 148
public static void CreateFile(string filename, string path, byte[] contents) 149
{ 150
FileStream fs = File.Create(path + "\\" + filename); 151
fs.Write(contents, 0, contents.Length); 152
fs.Close(); 153
} 154
155
/// <summary> 156
/// 删除文件 157
/// </summary> 158
/// <param name="path"></param> 159
public static void DeleteFile(string path) 160
{ 161
File.Delete(path); 162
} 163
164
/// <summary> 165
/// 移动文件 166
/// </summary> 167
/// <param name="oldPath"></param> 168
/// <param name="newPath"></param> 169
public static void MoveFile(string oldPath, string newPath) 170
{ 171
File.Move(oldPath, newPath); 172
} 173
174
/// <summary> 175
/// 读取文件信息 176
/// </summary> 177
/// <param name="path"></param> 178
/// <returns></returns> 179
public static FileSystemItem GetItemInfo(string path) 180
{ 181
FileSystemItem item = new FileSystemItem(); 182
if (Directory.Exists(path)) 183
{ 184
DirectoryInfo di = new DirectoryInfo(path); 185
item.Name = di.Name; 186
item.FullName = di.FullName; 187
item.CreationDate = di.CreationTime; 188
item.IsFolder = true; 189
item.LastAccessDate = di.LastAccessTime; 190
item.LastWriteDate = di.LastWriteTime; 191
item.FileCount = di.GetFiles().Length; 192
item.SubFolderCount = di.GetDirectories().Length; 193
} 194
else 195
{ 196
FileInfo fi = new FileInfo(path); 197
item.Name = fi.Name; 198
item.FullName = fi.FullName; 199
item.CreationDate = fi.CreationTime; 200
item.LastAccessDate = fi.LastAccessTime; 201
item.LastWriteDate = fi.LastWriteTime; 202
item.IsFolder = false; 203
item.Size = fi.Length; 204
} 205
return item; 206
} 207
208
/// <summary> 209
/// 复制文件夹 210
/// </summary> 211
/// <param name="source"></param> 212
/// <param name="destination"></param> 213
public static void CopyFolder(string source, string destination) 214
{ 215
String[] files; 216
if (destination[destination.Length - 1] != Path.DirectorySeparatorChar) 217
destination += Path.DirectorySeparatorChar; 218
if (!Directory.Exists(destination)) Directory.CreateDirectory(destination); 219
files = Directory.GetFileSystemEntries(source); 220
foreach (string element in files) 221
{ 222
if (Directory.Exists(element)) 223
CopyFolder(element, destination + Path.GetFileName(element)); 224
else 225
File.Copy(element, destination + Path.GetFileName(element), true); 226
} 227
} 228
} 229
}






}