杨伟的博客
百度空间 | 百度首页 
               
 
个人档案
 
yangw80

河北 石家庄 
上次登录:
2天前
加为好友
 
   
 
我的……
 
 
 
 
     
 
我鼓捣的……
 
 
 
 
 
 
     
 
最新评论
 
     
 
 
文章列表
 
2009-06-14 14:56

FCKeditor 很强大也很讨人喜欢,唯一的缺点就是不支持文件和文件夹的删除,很是遗憾。这篇文章就介绍怎样为 FCKeditor 增加删除功能(基于 C# 的版本)。

FCKeditor 官方网站:http://www.fckeditor.net
本文所针对版本:FCKeditor: 2.6.4,FCKeditor.Net: 2.6.3。

1. 用 Visual Studio 2005/2008 打开项目 FCKeditor.Net 2.6.3,打开文件“FileBrowser/Connector.cs”,为 class Connector 增加如下两个成员函数:

private void DelFile( XmlNode connectorNode, string resourceType, string currentFolder )
{
  HttpContext hc = HttpContext.Current;
  string file = hc.Server.MapPath(hc.Request["FileUrl"]);
  if (System.IO.File.Exists(file))
    System.IO.File.Delete(file);
  else
    hc.Response.Write(@"<error number=""1"" originaldescription=""unable to locate file"">");
}

private void DelFolder( XmlNode connectorNode, string resourceType, string currentFolder )
{
  HttpContext hc = HttpContext.Current;
  string folder = hc.Server.MapPath(hc.Request["FolderName"]);
  if (System.IO.Directory.Exists(folder))
    System.IO.Directory.Delete(folder, true);
  else
    hc.Response.Write(@"<error number=""2"" originaldescription=""unable to locate folder"">");
}

2. 在文件“Connector.cs”中找到 OnLoad 函数,在 switch 部分增加以下红色代码:

// Execute the required command.
switch( sCommand )
{
  case "GetFolders" :
    this.GetFolders( oConnectorNode, sResourceType, sCurrentFolder );
    break;
  case "GetFoldersAndFiles" :
    this.GetFolders( oConnectorNode, sResourceType, sCurrentFolder );
    this.GetFiles( oConnectorNode, sResourceType, sCurrentFolder );
    break;
  case "CreateFolder":
    this.CreateFolder(oConnectorNode, sResourceType, sCurrentFolder);
    break;
  case "DelFile":
    this.DelFile(oConnectorNode, sResourceType, sCurrentFolder);
    break;
  case "DelFolder":
    this.DelFolder(oConnectorNode, sResourceType, sCurrentFolder);
    break;
}

3. 编译 FCKeditor.net 并关闭该项目。将生成的 FredCK.FCKeditorV2.dll 拷贝出来以备后用。

4. 建立 C# 测试项目,并在其中部署 FCKeditor 2.6.4(使用第 3 步生成的 FredCK.FCKeditorV2.dll)。精简及部署的详细步骤非本文重点,不再重复。

5. 打开“fckeditor/editor/filemanager/browser/default/frmresourceslist.htm”,修改以下两个函数

oListManager.GetFolderRowHtml = function( folderName, folderPath, folderUrl )
{
  // Build the link to view the folder.
  var sLink = '<a href="#" onclick="OpenFolder(\'' + ProtectPath(folderPath) + '\');return false;">';

  return '<tr>' +
    '<td width="16">' +
      sLink +
      '<img alt="" src="images/Folder.gif" width="16" height="16" border="0"><\/a>' +
    '<\/td><td nowrap colspan="2"> ' +
      sLink +
      folderName +
      '<\/a>' +
    '<\/td><td align="right"><a href="#" onclick="DelFolder(\''+folderName+'\',\''+ ProtectPath(folderUrl) + '\');return false;">删除</a></td><\/tr>';
}

oListManager.GetFileRowHtml = function( fileName, fileUrl, fileSize )
{
  // Build the link to view the folder.
  var sLink = '<a href="#" onclick="OpenFile(\'' + ProtectPath(fileUrl) + '\');return false;">' ;

  // Get the file icon.
  var sIcon = oIcons.GetIcon( fileName ) ;

  return '<tr>' +
    '<td width="16">' +
      sLink +
      '<img alt="" src="images/icons/' + sIcon + '.gif" width="16" height="16" border="0"><\/a>' +
    '<\/td><td> ' +
      sLink +
      fileName +
      '<\/a>' +
    '<\/td><td align="right" nowrap> ' +
      fileSize +
      ' KB' +
    '<\/td><td align="right"><a href="#" onclick="DelFile(\''+fileName+'\',\'' + ProtectPath(fileUrl) + '\');return false;">删除</a></td><\/tr>';
}

6. 继续修改文件“frmresourceslist.htm”,在 OpenFile 函数后面增加以下两个函数:

function DelFile( fileName, fileUrl )
{
  if (confirm('您确定要删除文件“' + fileName + '”吗?'))
    oConnector.SendCommand("DelFile", "FileUrl=" + escape(fileUrl), Refresh);
}

function DelFolder( folderName, folderPath )
{
  if (confirm('您确定要删除文件夹“' + folderName + '”和里面的所有文件吗?'))
    oConnector.SendCommand("DelFolder", "FolderName=" + escape(folderPath + folderName), Refresh);
}

7. 继续修改文件“frmresourceslist.htm”,找到 GetFoldersAndFilesCallBack 函数中的下面这行,增加红色部分的代码:

oHtml.Append( oListManager.GetFolderRowHtml( sFolderName, sCurrentFolderPath + sFolderName + "/", sCurrentFolderUrl ) );

至此,删除功能增加完毕,见下图:

 
2009-06-13 19:38

前些天去了趟武汉,六月初我都铺褥子盖被子睡觉,6月8号才换盖毛毯。前天回石家庄,天啊,一下火车就感觉一股热浪袭来,真的有火炉的感觉。到家后更是,晚上凉席加毛巾被,真的太热了。

再多说几句:天气越来越炎热,我认为应该是与地下水位有关,因为水的比热大。现在的城市都是水泥和沥青,雨水都顺着管道排走了,地下水位不断降低,这才造成了天气越来越炎热的后果。

所以现在倡导城市铺设“透水地砖”或者那种上大下小的梯形砖,这样大量的雨水可以通过透水地砖补充地下水,地面上也就不会出现积水了,还能减轻城市排水系统的负担,一举多得。这样才能缓解日趋严重的城市热岛效应。

 
2009-05-09 23:15

通过远程桌面连接到远程电脑的 WinXP 后,是不能关闭远程电脑的,只有“断开”和“注销”选项。为了实现“关机”和“重启”功能,可以这样做:

1. 实现关机功能:

创建以下程序及参数的快捷方式即可:
C:\WINDOWS\system32\shutdown.exe -s -f -t 1

2. 实现重启功能:

创建以下程序及参数的快捷方式即可:
C:\WINDOWS\system32\shutdown.exe -r -f -t 1

然后,在需要的时候双击快捷方式就行了,稍等一下,系统就会关机或重启。

 
2009-04-20 21:58
准确的说,是去年今天的3天前,我了解到了,那个在认真学种树的,原来是个名副其实的郡主。
在那天的一年之后,早晨 8:03,我终于见到了她……
 
2009-04-14 15:53

下载

当前版本:20090414
文件大小:3.7K
<点这里下载> (内附范例)

说明

嗯,貌似在 VC 下的控制台要麻烦一些,不像 Turbo C 里面那么简单,比如没有 gotoxy、clrscr 函数等等。

于是就简单的把相关 API 封装了一下,并不是什么复杂的技术,只希望能给初学者带来些方便,以便提高编程兴趣。

引用该库后可以在 VC 下实现如下函数:

clrscr(); // 清屏
gotoxy(int x, int y); // 移动光标到指定位置
textcolor(int newcolor); // 设置当前文字前景色
textbackground(int newcolor); // 设置当前文字背景色
textattr(int newcolor); // 设置当前文字前景、背景色
delay(DWORD dwMilliseconds); // 延时

范例代码

请创建普通的 VC 控制台程序,然后粘贴以下代码即可:

#include <conioex.h>
#include <stdio.h>
void main()
{
   clrscr();
   gotoxy(20,10);
   textattr(FOREGROUND_RED | FOREGROUND_BLUE | BACKGROUND_BLUE);
   printf("Hello Color!");
}

 
     
 
 
我的照片秀
 
   
 
文章分类
 
 
 
杂谈(37)
 
 
 
 
 
 
     
 
日历
 
     
 
最近访客
 
 

pangpengde

warbeingyang

秦鸽儿

KrissiZH

醇郁云

E71x

sw8698

lhaix
     
 
其它
 
已有人次访问本空间
 
订阅RSS  什么是RSS?

您也想拥有这样的空间?请点此申请。
     


©2009 Baidu