加密不定长数据 且 加密前数据和加密后数据大小相等, <已解决:RC4算法可以实现>

AYZRxx 2017-08-15 04:31:41
1. 我使用的是OpenSSL库, AES算法
2. 想实现的功能是加密不定长的数据, 而且加密后的数据和原始数据一样大
求个能实现的算法, 求简单的, 本人基本上学过过算法

3. 比如加密下面这20个字节数据, 数据就被加密成32个字节的数据, 数据变大了
BYTE byIn[20 = {
'\x11' ,'\x22' ,'\x33' ,'\x44' ,'\x55' ,'\x66' ,'\x77' ,'\x88' ,
'\x99' ,'\xAA' ,'\x00' ,'\xCC' ,'\xDD' ,'\xEE' ,'\xFF' ,'\x00' ,
'\x45' ,'\x4A' ,'\x05' ,'\x8C' //加密之后变成了16个字节的加密数据
};


4. 下面是代码, 解密之后最后一块数据<20个字节的后4个字节不对了>, 因为AES是按照16个字节加密解密的
#include "stdafx.h"
#include <openssl/ssl.h>
#include <openssl/aes.h>
#include <openssl/rsa.h>
#include <openssl/rc4.h>

#include <string>
#include <iostream>
#include <fstream>
#include <PeClass.h>
using std::string;

//AES加密是以每组16个字节加密的
//AES加密(加密后数据, 加密前数据, 大小, 密钥)
void AesEncryption(OUT BYTE* bOutData, IN BYTE* bInData, IN DWORD dwSizeOut, OUT string strKey)
{
DWORD dwSize = Align(dwSizeOut, 16);

//new一片0x16对齐后的空间
BYTE* byNewIn = new BYTE[dwSize]();
memcpy(byNewIn, bInData, dwSizeOut);

//计算加密的次数
DWORD dwAlignNum = dwSizeOut / 16;

//最后一块剩余字节数
DWORD dwRemain = dwSizeOut % 16 ;

if (dwRemain)
{
++dwAlignNum;;
}

unsigned char aes_keybuf[32] = { 0 };
//memset(aes_keybuf,0,sizeof(aes_keybuf));
//将密钥复制到aes_keybuf
strcpy((char *)aes_keybuf, strKey.c_str());
//把明文密钥加密处理
AES_KEY aeskey;
AES_set_encrypt_key(aes_keybuf, 256, &aeskey);


//new一片0x16对齐后的空间
BYTE* byNewOut = new BYTE[dwSize]();


for (DWORD i = 0; i < dwAlignNum; i++)
{
AES_encrypt((const unsigned char *) ((DWORD)byNewIn + i * 16),
(unsigned char *) ((DWORD)byNewOut + i * 16),
&aeskey);
}


//把实际加密后数据, 复制到输出缓冲区
memcpy(bOutData, byNewOut, dwSizeOut);


delete byNewOut;
delete byNewIn;
}


//AES解密(解密后数据, 解密前数据, 大小, 密钥)
void AesDecryption(OUT BYTE* bOutData, IN BYTE* bInData, IN DWORD dwSizeOut, OUT string strKey)
{
DWORD dwSize = Align(dwSizeOut, 16);

//new一片0x16对齐后的空间
BYTE* byNewIn = new BYTE[dwSize]();
memcpy(byNewIn, bInData, dwSizeOut);

//计算加密的次数
DWORD dwAlignNum = dwSizeOut / 16;

//最后一块剩余字节数
DWORD dwRemain = dwSizeOut % 16;

if (dwRemain)
{
++dwAlignNum;;
}

unsigned char aes_keybuf[32] = { 0 };
//memset(aes_keybuf,0,sizeof(aes_keybuf));
//将密钥复制到aes_keybuf
strcpy((char *)aes_keybuf, strKey.c_str());
//把明文密钥加密处理
AES_KEY aeskey;
AES_set_decrypt_key(aes_keybuf, 256, &aeskey);


//new一片0x16对齐后的空间
BYTE* byNewOut = new BYTE[dwSize]();


for (DWORD i = 0; i < dwAlignNum; i++)
{
AES_decrypt((const unsigned char *)((DWORD)byNewIn + i * 16),
(unsigned char *)((DWORD)byNewOut + i * 16),
&aeskey);
}


//把实际加密后数据, 复制到输出缓冲区
memcpy(bOutData, byNewOut, dwSizeOut);

delete byNewOut;
delete byNewIn;
}


BYTE byIn[20] = {
'\x11' ,'\x22' ,'\x33' ,'\x44' ,'\x55' ,'\x66' ,'\x77' ,'\x88' ,
'\x99' ,'\xAA' ,'\x00' ,'\xCC' ,'\xDD' ,'\xEE' ,'\xFF' ,'\x00' ,
'\x45' ,'\x4A' ,'\x05' ,'\x8C'
};

int main(void) {

//BYTE byIn[20] = {};
BYTE byOut[20] = {};
BYTE byBuf[20] = {};

AesEncryption(byOut, byIn, 20, "123456");

AesDecryption(byBuf, byOut, 20, "123456");

return 0;
}
...全文
3360 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-08-15
  • 打赏
  • 举报
回复
仅供参考:
#pragma comment(lib, "crypt32.lib")
#pragma comment(lib, "advapi32.lib")
#define _WIN32_WINNT 0x0400
#include <stdio.h>
#include <windows.h>
#include <wincrypt.h>
#define KEYLENGTH  0x00800000
void HandleError(char *s);
//--------------------------------------------------------------------
//  These additional #define statements are required.
#define ENCRYPT_ALGORITHM CALG_RC4
#define ENCRYPT_BLOCK_SIZE 8
//   Declare the function EncryptFile. The function definition
//   follows main.
BOOL EncryptFile(
    PCHAR szSource,
    PCHAR szDestination,
    PCHAR szPassword);
//--------------------------------------------------------------------
//   Begin main.
void main(void) {
    CHAR szSource[100];
    CHAR szDestination[100];
    CHAR szPassword[100];
    printf("Encrypt a file. \n\n");
    printf("Enter the name of the file to be encrypted: ");
    scanf("%s",szSource);
    printf("Enter the name of the output file: ");
    scanf("%s",szDestination);
    printf("Enter the password:");
    scanf("%s",szPassword);
    //--------------------------------------------------------------------
    // Call EncryptFile to do the actual encryption.
    if(EncryptFile(szSource, szDestination, szPassword)) {
        printf("Encryption of the file %s was a success. \n", szSource);
        printf("The encrypted data is in file %s.\n",szDestination);
    } else {
        HandleError("Error encrypting file!");
    }
} // End of main
//--------------------------------------------------------------------
//   Code for the function EncryptFile called by main.
static BOOL EncryptFile(
    PCHAR szSource,
    PCHAR szDestination,
    PCHAR szPassword)
//--------------------------------------------------------------------
//   Parameters passed are:
//     szSource, the name of the input, a plaintext file.
//     szDestination, the name of the output, an encrypted file to be
//         created.
//     szPassword, the password.
{
    //--------------------------------------------------------------------
    //   Declare and initialize local variables.
    FILE *hSource;
    FILE *hDestination;
    HCRYPTPROV hCryptProv;
    HCRYPTKEY hKey;
    HCRYPTHASH hHash;
    PBYTE pbBuffer;
    DWORD dwBlockLen;
    DWORD dwBufferLen;
    DWORD dwCount;
    //--------------------------------------------------------------------
    // Open source file.
    if(hSource = fopen(szSource,"rb")) {
        printf("The source plaintext file, %s, is open. \n", szSource);
    } else {
        HandleError("Error opening source plaintext file!");
    }
    //--------------------------------------------------------------------
    // Open destination file.
    if(hDestination = fopen(szDestination,"wb")) {
        printf("Destination file %s is open. \n", szDestination);
    } else {
        HandleError("Error opening destination ciphertext file!");
    }
    //以下获得一个CSP句柄
    if(CryptAcquireContext(
                &hCryptProv,
                NULL,               //NULL表示使用默认密钥容器,默认密钥容器名
                //为用户登陆名
                NULL,
                PROV_RSA_FULL,
                0)) {
        printf("A cryptographic provider has been acquired. \n");
    } else {
        if(CryptAcquireContext(
                    &hCryptProv,
                    NULL,
                    NULL,
                    PROV_RSA_FULL,
                    CRYPT_NEWKEYSET))//创建密钥容器
        {
            //创建密钥容器成功,并得到CSP句柄
            printf("A new key container has been created.\n");
        } else {
            HandleError("Could not create a new key container.\n");
        }
    }
    //--------------------------------------------------------------------
    // 创建一个会话密钥(session key)
    // 会话密钥也叫对称密钥,用于对称加密算法。
    // (注: 一个Session是指从调用函数CryptAcquireContext到调用函数
    //   CryptReleaseContext 期间的阶段。会话密钥只能存在于一个会话过程)
    //--------------------------------------------------------------------
    // Create a hash object.
    if(CryptCreateHash(
                hCryptProv,
                CALG_MD5,
                0,
                0,
                &hHash)) {
        printf("A hash object has been created. \n");
    } else {
        HandleError("Error during CryptCreateHash!\n");
    }
    //--------------------------------------------------------------------
    // 用输入的密码产生一个散列
    if(CryptHashData(
                hHash,
                (BYTE *)szPassword,
                strlen(szPassword),
                0)) {
        printf("The password has been added to the hash. \n");
    } else {
        HandleError("Error during CryptHashData. \n");
    }
    //--------------------------------------------------------------------
    // 通过散列生成会话密钥
    if(CryptDeriveKey(
                hCryptProv,
                ENCRYPT_ALGORITHM,
                hHash,
                KEYLENGTH,
                &hKey)) {
        printf("An encryption key is derived from the password hash. \n");
    } else {
        HandleError("Error during CryptDeriveKey!\n");
    }
    //--------------------------------------------------------------------
    // Destroy the hash object.
    CryptDestroyHash(hHash);
    hHash = NULL;
    //--------------------------------------------------------------------
    //  The session key is now ready.
    //--------------------------------------------------------------------
    // 因为加密算法是按ENCRYPT_BLOCK_SIZE 大小的块加密的,所以被加密的
    // 数据长度必须是ENCRYPT_BLOCK_SIZE 的整数倍。下面计算一次加密的
    // 数据长度。
    dwBlockLen = 1000 - 1000 % ENCRYPT_BLOCK_SIZE;
    //--------------------------------------------------------------------
    // Determine the block size. If a block cipher is used,
    // it must have room for an extra block.
    if(ENCRYPT_BLOCK_SIZE > 1)
        dwBufferLen = dwBlockLen + ENCRYPT_BLOCK_SIZE;
    else
        dwBufferLen = dwBlockLen;
    //--------------------------------------------------------------------
    // Allocate memory.
    if(pbBuffer = (BYTE *)malloc(dwBufferLen)) {
        printf("Memory has been allocated for the buffer. \n");
    } else {
        HandleError("Out of memory. \n");
    }
    //--------------------------------------------------------------------
    // In a do loop, encrypt the source file and write to the destination file.
    do {
        //--------------------------------------------------------------------
        // Read up to dwBlockLen bytes from the source file.
        dwCount = fread(pbBuffer, 1, dwBlockLen, hSource);
        if(ferror(hSource)) {
            HandleError("Error reading plaintext!\n");
        }
        //--------------------------------------------------------------------
        // 加密数据
        if(!CryptEncrypt(
                    hKey,           //密钥
                    0,              //如果数据同时进行散列和加密,这里传入一个
                    //散列对象
                    feof(hSource),  //如果是最后一个被加密的块,输入TRUE.如果不是输.
                    //入FALSE这里通过判断是否到文件尾来决定是否为
                    //最后一块。
                    0,              //保留
                    pbBuffer,       //输入被加密数据,输出加密后的数据
                    &dwCount,       //输入被加密数据实际长度,输出加密后数据长度
                    dwBufferLen))   //pbBuffer的大小。
        {
            HandleError("Error during CryptEncrypt. \n");
        }
        //--------------------------------------------------------------------
        // Write data to the destination file.
        fwrite(pbBuffer, 1, dwCount, hDestination);
        if(ferror(hDestination)) {
            HandleError("Error writing ciphertext.");
        }
    } while(!feof(hSource));
    //--------------------------------------------------------------------
    //  End the do loop when the last block of the source file has been
    //  read, encrypted, and written to the destination file.
    //--------------------------------------------------------------------
    // Close files.
    if(hSource)
        fclose(hSource);
    if(hDestination)
        fclose(hDestination);
    //--------------------------------------------------------------------
    // Free memory.
    if(pbBuffer)
        free(pbBuffer);
    //--------------------------------------------------------------------
    // Destroy session key.
    if(hKey)
        CryptDestroyKey(hKey);
    //--------------------------------------------------------------------
    // Destroy hash object.
    if(hHash)
        CryptDestroyHash(hHash);
    //--------------------------------------------------------------------
    // Release provider handle.
    if(hCryptProv)
        CryptReleaseContext(hCryptProv, 0);
    return(TRUE);
} // End of Encryptfile
//--------------------------------------------------------------------
//  This example uses the function HandleError, a simple error
//  handling function, to print an error message to the standard error
//  (stderr) file and exit the program.
//  For most applications, replace this function with one
//  that does more extensive error reporting.
void HandleError(char *s) {
    fprintf(stderr,"An error occurred in running the program. \n");
    fprintf(stderr,"%s\n",s);
    fprintf(stderr, "Error number %x.\n", GetLastError());
    fprintf(stderr, "Program terminating. \n");
    exit(1);
} // End of HandleError

RAR 是一个让你在命令行模式中管理压缩文件的控制台应用。RAR 提供压缩、加 密、数据恢复和许多其它此手册中描述的其它功能。 RAR 只支持 RAR 格式压缩文件,它默认有 .rar 扩展名。不支持ZIP 和其他格 式。即使创建压缩文件时指定了 .zip 扩展名,它仍然是 RAR 格式的。Windows 用户 可以 WinRAR,它支持更多的压缩文件类型,包括 RAR 和 ZIP 格式。 WinRAR 提供了图形用户界面和命令行模式。虽然控制台 RAR 和图形界面 WinRAR 有相似的命令行语法,但是它们还有有一些不同。所以推荐使用此 rar.txt 手册用于 控制台 RAR(rar.exe 在 Windows 版本的情况下),winrar.chm 是图形界面 WinRAR (winrar.exe) 的帮助文件。 配置文件 ~~~~~~~~ Unix 版本的 RAR 从用户的 home 或 /etc 目录中的 .rarrc 文件读取配置文件信息 (存储在 HOME 环境变量中) Windows 的版本 RAR 从 rar.ini 文件读取配置文件信息,它放在 rar.exe 文件相 同的目录中。 这个文件包含下列字符串: switches=任何 RAR 开关,用空格分开 例如: switches=-m5 -s 环境变量 ~~~~~~~~ 可以通过建立"RAR"环境变量来添加默认参数到命令行中. 例如,在 Unix 中,下列命令行可以被添加到你的配置中: RAR='-s -md1024' export RAR RAR 将使用这个字符串作为命令行的默认参数,并将使用 1024KB 字典大小来创建 “固实”压缩文件。 RAR 控制选项使用下列优先级: 命名行开关 最高优先级 在 RAR 变量中的开关 低优先级 保存在配置文件中的开关 最低优先级 日志文件 ~~~~~~~~ 如果在命令行或配置文件中指定开关 -ilog ,RAR 将会把处理压缩文件中遇到的错误 等写到日志文件中。读取开关 -ilog 描述获得更多信息。 固实压缩的文件列表 - rarfiles.lst ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rarfiles.lst 包含一个用户定义的文件列表,告诉 RAR 添加文件到固实压缩文件时的顺 序。它可以包含文件名通配符和指定项目 -$default。默认项目定义了这个文件中与 其他项目不相符时的顺序清单位置。 注释字符是 ';'. 在 Windows 中,这个文件应该放在 RAR 所在的或 %APPDATA%\WinRAR 目录中, 在 Unix 中- 放在用户的 home 目录或在 /etc 中。 提高压缩率和操作速度的提示: - 在压缩文件中,小文件应该被组织在一起; - 频繁被处理的文件应该放在开始的位置。 普通的掩码越靠近顶端优先权就越高,但是这个规则存在例外。如果 rarfiles.lst 包含两个掩码,并且所有文件既匹配第一个掩码,也匹配第二个掩码, 较小的子集 或者更精确的匹配拥有更高的优先权。例如,如果你用 *.cpp 和 f*.cpp 掩码, f*.cpp 拥有更高的优先权。 RAR 命令行语法 ~~~~~~~~~~~~~~ 语法 RAR [ - ] [ ] [ ] [ ] 描述 命令行选项 (命令和开关) 提供了使用 RAR 创建和管理压缩文件的控制方法。命 令是一个字符串(或单个的字母),命令 RAR 去执行一个相应的操作。开关被用来 改变 RAR 执行操作的方法。其它参数是压缩文件名和被压缩的文件或要从压缩文件 中被解压文件。 列表文件是一个包括处理的文件名的纯文本文件。第一列应该以文件名开始。可以 在//字符后添加注释。例如,你可以创建包含下列字符串的 backup.lst: c:\work\doc\*.txt //备份文本文档 c:\work\image\*.bmp //备份图片 c:\
用户手册 RAR 4.00 控制台版本 欢迎使用 RAR 压缩文件管理器! 简介 RAR 是一个强力压缩工具,允许你管理和操作压缩文件。控制台 RAR 只支持 RAR 格式,带有的 ".rar" 扩展名的文件。ZIP 和其他格式不被支持。Windows 用户可以 安装图形界面 RAR 版本 - WinRAR,它可以处理更多的压缩文件类型。 RAR 的功能包括: * 高度成熟的原创压缩算法 * 对于文本、声音、图像和 32 位和 64 位 Intel 可执行程序压缩的特殊优化算法 * 获得比类似工具更好的压缩率,使用'固实'压缩 * 身份校验(只有注册版本可用) * 自解压压缩文件和分卷压缩(SFX) * 对物理损伤的压缩文件的恢复能力 * 锁定,密码,文件顺序列表,文件安全和更多 配置文件 Unix 版本的 RAR 从用户的 home 或 /etc 目录中的 .rarrc 文件读取配置文件信息 (存储在 HOME 环境变量中) Windows 的版本 RAR 从 rar.ini 文件读取配置文件信息,它放在 rar.exe 文件相 同的目录中。 这个文件包含下列字符串: switches=任何 RAR 开关,用空格分开 例如: switches=-m5 -s 环境变量 可以通过建立"RAR"环境变量来添加默认参数到命令行中. 例如,在 UNIX 中,下列命令行可以被添加到你的配置中: RAR='-s -md1024' export RAR RAR 将使用这个字符串作为命令行的默认参数,并将使用 1024KB 字典大小来创建 “固实”压缩文件。 RAR 控制选项使用下列优先级: 命名行开关 最高优先级 在 RAR 变量中的开关 低优先级 保存在配置文件中的开关 最低优先级 日志文件 如果在命令行或配置文件中指定开关 -ilog ,RAR 将会把处理压缩文件中遇到的错误 等写到日志文件中。读取开关 -ilog 描述获得更多信息。 固实压缩的文件列表 - rarfiles.lst rarfiles.lst 包含一个用户定义的文件列表,告诉 RAR 添加文件到固实压缩文件时的顺 序。它可以包含文件名通配符和指定项目 -$default。默认项目定义了这个文件中与 其他项目不相符时的顺序清单位置。 注释字符是 ';'. 在 Windows 中,这个文件应该放在 RAR 所在的或 %APPDATA%\WinRAR 目录中, 在 Unix 中- 放在用户的 home 目录或在 /etc 中。 提高压缩率和操作速度的提示: - 在压缩文件中,小文件应该被组织在一起; - 频繁被处理的文件应该放在开始的位置。 普通的掩码越靠近顶端优先权就越高,但是这个规则存在例外。如果 rarfiles.lst 包含两个掩码,并且所有文件既匹配第一个掩码,也匹配第二个掩码, 较小的子集 或者更精确的匹配拥有更高的优先权。例如,如果你用 *.cpp 和 f*.cpp 掩码, f*.cpp 拥有更高的优先权。 RAR 命令行语法 ~~~~~~~~~~~~~~ 语法 RAR <命令> [ -<开关> ] <压缩文件> [ <@列表文件...> ] [ <文件...> ] [ <解压路径\> ] 描述 命令行选项 (命令和开关) 提供了使用 RAR 创建和管理压缩文件的控制方法。命 令是一个字符串(或单个的字母),命令 RAR 去执行一个相应的操作。开关被用来 改变 RAR 执行操作的方法。其它参数是压缩文件名和被压缩的文件或要从压缩文件 中被解压文件。 列表文件是一个包括处理的文件名的纯文本文件。第一列应该以文件名开始。可以 在//字符后添加注释。例如,你可以创建包含下列字符串的 backup.lst: c:\work\doc\*.txt //备份文本文档 c:\work\image\*.bmp //备份图片 c:\work\misc 接着运行: rar a backup @backup.lst 如果你希望从标准输入设备读取文件名,指定空的文件列表名(只有@)。 在列表文件中 Win32 控制台 RAR 使用 OEM (DOS) 编码。 你可以在同一命令行指定普通文件名和列表文件。如果文件和列表 文件都未被指定,那么 RAR 将默认是 *.*,来处理所有文件 在一个 UNIX 环境变量中,你需要将通配符置于引号中,避免被外壳扩展。例如, 这个命令将从当路径中的 RAR 压缩文件解压所有的 *.asm 文件: rar e '*.rar' '*.asm' 命令可以是下列中的任何一个: a 添加文件到压缩文件中。 例子: 1) 从当目录添加所有的 *.hlp 文件到 help.rar 压缩文件: rar a help *.hlp 2) 把当目录和子目录的所有文件压缩为 362000 字节大小、固实的、 自解压分卷压缩文件并对没个卷添加恢复记录: rar a -r -v362 -s -sfx -rr save 因为尾指定文件名,假设为所有文件 (*)。 3) 作为一个特别的例外,如果目录名被作为参数指定并且目录名不包 含文件掩码和以反斜线结尾,即使指定了 -r 开关,目录和子目录的所 有内容都会被添加到压缩文件中。 下面的命令会把 Bitmaps 目录和它的子目录中的所有文件添加到 RAR 压缩文件 Pictures.rar 中: rar a Pictures.rar Bitmaps 4) 如果目录包含文件掩码或以反斜线结尾,将会应用普通的规则,你 需要指定 -r 开关来处理它的子目录。 下列命令会把 Bitmaps 目录中除了子目录外的所有文件添加,因为未 指定开关 -r: rar a Pictures.rar Bitmaps\* c 添加压缩文件注释。当压缩文件被处理时注释被显示。文件的注释度限 制到 32767 字节 例子: rar c distrib.rar 注释也可以使用 -z[名称] 开关从文件添加: 下列命令从 info.txt 文件添加一个注释: rar c -zinfo.txt dummy cf 添加文件注释。当使用'v'命令时显示文件注释。文件的注释度限制到 32767 字节。 例子: rar cf bigarch *.txt ch 改变压缩文件参数。 此命令能和大多数压缩文件变量开关一起使用修改压缩文件参数。对于象 -av, -cl, -cu, -tl 等没有专门命令的开关特别方便。 它不能重新压缩、解密或加密压缩文件数据,它不能整合或创建卷。如果 不和其它开关一起使用,'ch' 命令仅复制压缩文件数据而不修改它。 例如: 设置压缩文件时间为最新的文件: rar ch -tl files.rar cw 写压缩文件注释到指定文件。 输出文件格式依赖于 -sc 开关。 如果输出文件名没有指定,注释数据会被发送到标准输出设备。 例子: 1) rar cw oldarch comment.txt 2) rar cw -scuc arc unicode.txt 3) rar cw arc d 从压缩文件中删除文件。请注意,如果这个命令导致压缩文件中所有文件 全部删除,这个空的压缩文件将被删除。 e 解压文件到当目录。 f 更新压缩文件中的文件。 更新打包到压缩文件后被改变的文件。这个命令不 向压缩文件中添加新文件。 i[i|c|h|t]=<字符串> 在压缩文件中查找字符串。 支持下列可选参数: i - 不区分大小写(默认); c - 区分大小写搜索; h - 十六进制搜索; t - 使用 ANSI, Unicode 和 OEM 字符表 (只有 Win32 可用); 如果没有指定任何参数,它可以使用简化的命令行语法 i<字符串> 来代 替 i=<字符串> 它允许指定带有另外一个参数的 't' 变量,例如,ict=字符串 在上面提 及的所有表中执行区分大小写的搜索。 例子: 1) rar "ic=first level" -r c:\*.rar *.txt 在 c:\*.rar 压缩文件中的 *.txt 文件执行区分大小写的 "first level" 字符串的搜索 2) rar ih=f0e0aeaeab2d83e3a9 -r e:\text 在 e:\text 目录下的 rar 压缩文件中搜索十六进制字符串 f0 e0 ae ae ab 2d 83 e3 a9。 k 锁定压缩文件。任何试图改变压缩文件的命令都会被忽略。 例子: rar k final.rar l[t,b] 压缩文件的内容列表[技术信息]。和 'v' 命令一样列出文件,但不包括 文件路径。也就是只显示文件名。当使用't'变量时可选技术信息(主操作 系统,固实标志和老版本标记)被显示。变量 'b' 强制 RAR 只输出单纯 的文件名,而没有其他任何的附加信息。 m[f] 移动到压缩文件中[只用于文件]。移动文件和目录会使压缩操作完成后它 们被删除。如果使用变量'f'和/或应用开关'-ed',则不删除目录。 p 打印文件到标准输出设备。 你可以把这个命令和 -inul 开关一起使用来禁止所有的 RAR 信息,并只 打印文件数据。当你需要发送一个文件到标准输出设备时,这也许很重要。 r 修复压缩文件。压缩文件修复是在两阶段中完成的。首先,在损坏的压缩 文件中查找恢复记录(参照'rr'命令)。如果压缩文件包含恢复记录,并且 损坏数据部分是连续的,而且少于N*512字节(N 处是放入压缩文件恢复块 的数字),则成功恢复压缩文件的机会非常高。当这个阶段完成,一个新的 压缩文件将被创建,名为_RECOVER.RAR。 如果损坏的压缩文件不包含恢复记录或如果压缩文件没有完全恢复导致大 的损伤,将执行第二阶段。这一阶段期间只重建压缩文件的结构,而不可 能恢复 CRC 校验失败的文件。它仍然可能恢复未受损的文件,因文件结 构破坏。这对于非固实压缩文件通常有用。 当第二阶段完成,重建结构的压缩文件将被保存为 rebuilt.arcname.rar, 'arcname' 的位置是原始压缩文件名。 RAR/DOS32 版本使用 _recover.rar 和 _reconst.rar 而不是上面提及的 名字。 在恢复记录进行中,当发现可疑文件时,RAR 可以提示用户。 可疑项目 名字: <可能的文件名> 大小: <大小> 压缩后: <压缩后大小> 添加它: 是/否/全部 回答 'y' 把这个项目添加到文件 rebuilt.arcname.rar 中。 例子: rar r buggy.rar rc 使用恢复卷(.rev 文件)重建丢失的卷。你需要指定任何已存在的卷作为 压缩文件名,例如,'rar rc backup.part03.rar' 读取 'rv' 命令描述得到关于恢复卷的信息。 rn 重命名压缩文件。 命令语法是: rar rn <压缩文件名> <源文件名1> <目标文件名1> ... <源文件名N> <目 标文件名N> 例如,下列命令: rar rn data.rar readme.txt readme.bak info.txt info.bak 在压缩文件 data.rar 中将把 readme.txt 重命名为 readme.bak 并把 info.txt 重命名为 info.bak。 在源文件和目标文件名中可以使用通配符来进行简单像改变文件扩展名的名 称转换。例如: rar rn data.rar *.txt *.bak 将把所有的 *.txt 文件重命名为 *.bak。 RAR 不检查目标文件名是否已经在压缩文件中存在,所以你需要小心,防止 重名。尤其是使用通配符时特别重要。这个命令有潜在的危险,因为一个错 误的通配符可以损坏所有的压缩文件名。 rr[N] 添加数据恢复记录。可选,多余信息(恢复记录)可以被添加到压缩文件 中。这将导致压缩文件大小稍微增加,但能在软盘错误或其它数据丢失 情况下帮助恢复压缩文件。一个恢复记录最大包含 524288 个恢复块。 块的数目可以在'rr'(N = 1,2 .. 524288)命令中直接指定或不用用户 指定,而是根据压缩文件的大小自动设定:一个恢复信息大小大约是总 压缩文件大小的1%,通常允许恢复达到压缩文件总大小的0.6%的连续数 据。 也可以以压缩文件大小的百分比来指定恢复记录的大小。只要把%添加到 命令参数后。 例如: rar rr3% arcname 注意,如果你从.bat 或 .cmd文件运行这个命令时,你需要使用rr3%%代 替rr3%,因为批处理命令把符号'%'作为批处理文件开始的参数。你可以 使用 'p' 代替'%',所以'rr3p'也可运行。 如果受损的数据是连续性的,则每个恢复记录块帮助恢复损坏信息的512 字节。如果多处损坏这个值将降低。 恢复记录的大小可以使用公式<压缩文件大小>/256 + <恢复记录数>*512 字节估计。 rv[N] 创建恢复卷(.rev文件),以后它可以用于重建卷组中丢失的文件。这个命 令只对多卷压缩文件敏感,你需要在组中指定第一个分卷文件的文件名。 例如: rar rv3 data.part01.rar 这个功能可以被用来备份,例如,发送一个多卷压缩文件到一个新组,并 且部分接收者没有收其中的一些文件。重新发送恢复卷代替普通卷,可以 减少传送文件的总数。 每个恢复卷可以重建一个丢失的 RAR 卷。例如,如果你有30个卷,3个恢 复卷,你可以创建任何3个丢失的卷。如果.rev文件的数目少于丢失卷的 数目,重建将不可能。普通和恢复卷的总数不能超过255。 原来的 RAR 卷在卷被创建后不能被修改。修复算法使用存储在 REV 文件 和 RAR 卷中的数据来重建丢失的 RAR 卷。所有如果你修改了 RAR 卷, 例如,在创建 REV 文件后锁定它们,修复操作将失败。 选项 参数指定创建恢复卷的数目,必须少于RAR卷的总数。你也可以 附加一个百分号到这个参数上,这样创建的.rev文件的数目将等于从 RAR 卷总数获得的这个百分比。 例如: rar rv15% data.part01.rar RAR 不管是使用‘rc’命令或自动时,如果在解压时无法定位下一卷,并 且发现可用数目的 .rev 文件,对丢失的卷和损坏的卷都试图重建。 损坏卷的原始副本在被重建重命名为 *.bad。例如,volname.part03.rar 将被重命名为volname.part03.rar.bad。 s[名称] 转换压缩文件成自解压格式。压缩文件和自解压模块合并(使用 default.sfx模块或在开关中指定)。在 Windows 版本中 default.sfx 应 该放在RAR.exe 所在目录下,在 Unix 中在用户的 home 目录中,在 /usr/lib 或 /usr/local/lib 下。 s- 从已存在的自解压压缩文件中删除自解压模块。RAR 创建一个不带自解压 模块的新的压缩文件,原来的自解压文件不会被删除。 t 测试压缩文件。为了验证指定的文件,这个命令执行虚拟的文件解压操作, 不写出任何输出数据流。 例子: 在当目录测试压缩文件: 或对于 Unix: rar t '*' 当目录开始,测试所有子目录下的压缩包: rar t -r * 或对于 Unix: rar t -r '*' u 更新压缩文件中的文件。添加不在压缩文件中的文件和更新打包后改变了的 文件。 v[t,b] 详细列出压缩文件内容[技术信息]。文件列出所使用的格式:绝对路径名,文 件注释,原始和压缩后的大小,压缩率,最近更新日期和时间,属性,CRC, 压缩方式和解压所需的最小RAR版本。当使用't'变量时可选技术信息(主操作 系统,固实标志和老的文件版本标记)显示。变量 'b' 强制 RAR 只输出单纯 的文件名,而没有其他任何的附加信息。 列出所有压缩卷的内容,使用星号('*')代替压缩文件扩展名或使用'-v' 开关。 例子: 1) 列出 system.rar 压缩文件的内容 (技术信息)并使用重定向符输出 到文件 techlist.lst 中 rar vt system >techlist.lst 2) 列出 tutorial.rar 压缩文件的内容 (单纯文件名模式) rar vb tutorial x 带绝对路径解压 例子: rar x -av- -c- dime 10cents.txt 解压指定的文件到当路径。AV 检查和注释显示被禁用。 开关 (与命令结合使用): -? 显示命令和开关的帮助。和没有参数或输入非法命令行选项时相同。 -- 停止开关扫描 这个开关告诉 RAR 命令行中没有更多的开关了。如果压缩文件或文件名 以 - 符号开头,可以使用它。没有'--'开关,这样的名字将被作为开关 对待。 例子: 从当目录添加所有文件到固实压缩文件'-StrangeName' RAR a -s -- -StrangeName -ac 压缩或解压后清除存档属性(只有Windows版本可用). -ad 附加压缩文件名到目标路径中。 这个选项可以在解压一组压缩文件时使用。默认条件下 RAR 把从压缩文 件中解压的文件放在同一目录下,但是这个开关使从每个压缩文件中解压 的文件都创建一个单独的目录。 例子: rar x -ad *.rar data\ RAR 将每一个解压的文件在'data'下创建子目录。 -ag[格式] 使用当的日期和时间生成压缩文件名。 当创建压缩文件时附加当日期字符串到压缩文件名上。用于每日备份。 附加的字符串格式有几种可选的格式参数定义或使用"YYYYMMDDHHMMSS"。 字符串的格式可以包含下列字符: Y - 年 M - 月 MMM - 使用文本字符串作为月名(Jan,Feb,等.) W - 年的第几周 (每星期从星期一开始) A - 星期几 (星期一 -1,星期日 - 7) D - 月的第几天 E - 年的第几天 H - 小时 M - 分 (如果在小时后,被作为分钟对待) S - 秒 N - 压缩文件数。RAR 搜索要生成的名字的文件是否存在,如果发现 它已经存在,将递增一个压缩文件数字,直到生成一个唯一的名字。 'N' 格式化字符在创建卷时不被支持。 上面列出的每个字符串仅表示添加到压缩文件名中的一个字符。例如, 使用 WW 表示 2 数字的星期或 YYYY 定义 4 数字的年。 如果在格式化字符串的第一个字符是'+',日期字符串和基本压缩文件名 位置交换,所以日期将在压缩文件名之。 格式化字符串可以包含在 '{' 和 '}' 包含的可选字符。此文本插入到压 缩文件名中。 所有其它字符被不变地添加到文件名上。 如果你需要更新已经存在的压缩文件,小心使用 -ag 开关。依赖于以 使用的 -ag 传送的格式化字符串和时间,生成的和现有的压缩文件名可 能不匹配。在这种情况下 RAR 会创建一个新的压缩文件,而不是更新现 有文件。 例子: 1) 使用默认 YYYYMMDDHHMMSS 格式 rar a -ag backup 2) 使用 DD-MMM-YY 格式 rar a -agDD-MMM-YY backup 3) 使用 YYYYMMDDHHMM 格式,替换'backup'之的日期 rar a -ag+YYYYMMDDHHMM backup 4) 使用 YYYY-WW-A 格式,包含区段描述 rar a -agYYYY{year}-WW{week}-A{wday} backup 5) 使用 YYYYMMDD 和压缩文件数。它允许你在同一天使用 -agyymmdd-nn 数次,每一个新的压缩文件名都将包含一个新的递增数字。 rar a -agYYYYMMDD-NN backup -ao 添加带有存档属性的文件 (只有 Windows 版本可用). 例子: 添加C:上所有带有存档属性的文件到'f:backup',并清除文件存档属性 rar a -r -ac -ao f:backup c:\*.* -ai 忽略文件属性。 当解压时实用此开关,RAR 不对解压的文件设置存储在压缩文件中的常 规文件属性。此开关保留由操作系统赋予新创建文件的属性。 在 Windows 中它影响存档、系统、隐藏和只读属性。在 Unix 中,用 户、组和其它文件属性。 -ap 压缩文件内部设置路径。当添加文件到压缩文件中时,路径被整合到文 件名中,解压时从文件名删除。 例如,如果你希望添加文件'readme.txt'到目录压缩文件'release' 的'DOCS\ENG'中,你可以运行: rar a -apDOCS\ENG release readme.txt 或者解压'ENG'到当目录中: rar x -apDOCS release DOCS\ENG\*.* -as 同步压缩文件内容 如果压缩时使用这个开关,这些在当被添加文件列表中不存在的被压缩 文件将从压缩文件中删除。它对于使用这个开关和 -u(更新)组合同步一 个压缩文件和正在压缩目录的内容很便利。 例如,执行这个命令后: rar a -u -as backup sources\*.cpp 压缩文件'backup.rar'将只包含目录'sources'中的*.cpp文件,所有其它 文件将被从压缩文件中删除。它和创建新的压缩文件很相像,但是有一个 重要的不同:如果最近备份之后没有文件被修改,这个操作比创建新的压 缩文件执行得快。 -av 添加身份校验(只有注册版本可用)。RAR将在每次新建或更新压缩文件时 添加关于创建者的信息、最后更新时间和压缩文件名。 如果一个包含身份校验的压缩文件被修改,而没有指定这个开关,则身份 校验信息将被删除。 使用'-av'开关的压缩文件当解压、测试、列表或更新时,RAR 将进行完 整性确认并显示信息: 校验身份信息... 在成功校验身份的情况下,显示消息'确定',创建者的名字和最近更新 信息会被显示。在身份校验失败的情况下,将显示'失败'。 RAR 身份验证可以被伪造,不能提供基于公钥的现代数字签名方案同等的 安全级别。我们推荐实用此 RAR 功能仅作为信息,像一个特殊的压缩文 件注释。当关于压缩文件的创建者创建信息特别重要时,不要使用它。 为了启用身份校验功能,程序必须注册。请联系你当地的发布点或网站发 布中心。 -av- 禁止检查或添加身份校验。 -cfg- 忽略配置文件和 RAR 环境变量。 -cl 转换文件名成小写字母。 -cu 转换文件名成大写字母。 -c- 禁止显示注释。 -df 压缩后删除文件 移动文件到压缩文件中。这个开关与命令'A'组合执行和命令'M'是同一动 作。 -dh 打开共享文件 允许处理有其它应用程序打开写的文件。 如果应用程序允许对文件的读取访问,这个开关有效。但是如果文件的访 问类型是私有,文件打开操作仍然会失败。 这个选项很危险,因为它允许压缩一个文件,而同时正被其它应用程序修 改,所以小心使用。 -dr 删除文件到回收站 压缩后删除文件并把它们放到回收站中。仅可用于 Windows 版本。 -ds 添加到一个固实压缩文件时不排序。 -dw 档案操作后清除文件 压缩后清除文件。在删除文件数据使用 0 字节文件覆盖它们, 防止恢 复删除的文件。 -ed 不添加空目录 这个开关指出空目录不被存储到被创建的压缩文件中。当解压这样一个压 缩文件时, RAR 会基于他们内部的文件路径创建非空的目录。关于空目录 的信息丢失。非空目录除了名字外(访问权限, 流, 等。)其他所有属性全 部丢失, 所以只有在你不需要保留这样的信息时使用此开关。 如果 -ed 和 'm' 命令或 -df 开关一起被使用,RAR 将不能移除空的目录。 -ee 不处理扩展属性 禁止保存和修复扩展文件属性。只用于OS/2版本。 -en 不添加"压缩文件结束"块 默认情况下,RAR 在新建或更新压缩文件时在结束时添加 "压缩文件结 束"块。它允许跳过像数字安全签名等扩展数据,但是在一些特定条件下 禁用这些功能可能有用。例如,如果在一个压缩文件通过不可靠的连接在 两个系统之间传递,并且同时发送者在它里面添加新文件时,它可能对确 认在传输过程中已经接收的部分不会被另一端所修改很重要。 这个开关不能用在分卷上,因为压缩文件结束块包含正确处理卷的重要信 息。 -ep 从名称中排除路径。包含此开关时,文件在加入压缩文件时不会包含路 径信息。这可能会有在压缩文件中存在数个相同名称的结果。 -ep1 从文件名中删除底层目录。不存储在命令行中输入的路径。 例子: tmp 目录中的所有文件和目录都将被添加到压缩文件'test'中,但是被压 缩文件名路径不包含'tmp\' rar a -ep1 -r test tmp\* 这等价于下列命令: cd tmp rar a -r ..\test cd .. -ep2 扩展路径成完全路径。压缩时存储文件的完全路径(除了盘符和根目录路 径). -ep3 扩展路径为包含盘符的完全路径。 仅用于 Win32 版本。 压缩时如果使用此开关则保存和恢复包括盘符的完全的文件路径。磁盘分 隔符(冒号)被下划线字符替换。 如果你解压时使用 -ep3,它把下划线改回为冒号并且把文件解压到它们 原始的目录和磁盘中。如果用户也指定了目标路径,它会被忽略。 此开关对于把数个磁盘备份到同一个压缩文件有帮助。例如,你可以运行: rar a -ep3 -r backup.rar c:\ d:\ e:\ 来创建备份并且: rar x -ep3 backup.rar 来恢复它。 小心使用 -ep3 开关,只有你确认压缩文件不包含任何恶意文件。换句话 说,如果是你自己创建的压缩文件或你完全相信它的作者才使用它。此开 关允许覆盖在你的计算机上任何地方的任何文件,包括重要的系统文件和 通常仅用于备份和恢复的目的。 -e[+]<属性> 指定排除或包含掩码属性文件。 <属性> 是十进位,八进位(以 '0' 开头)或十六进位 (以 '0x' 开头) 的数字格式。 默认, 在 <属性>没有‘+’标记, 此开关定义排除掩码。如果对 <属性> 和文件属性按位进行 AND 逻辑运算的结果不为 0,则文件将不会被处理。 如果‘+’符号存在,它指定包含掩码。只有具有在掩码中指定的属性中 的至少一种的文件会被处理。 在 Windows 版本中也可以使用D、S、H、A代替数字掩码符号表示目录和 文件的系统,隐藏,存档和只读属性。给出的属性的顺序并不重要。 Unix 版本支持 D 和 V 符号来定义目录和设备属性。 允许在命令行中把 -e 和 -e+ 都指定。 示例: 1) 仅有文件夹名字而不包含它们的内容 rar a -r -e+d dirs 2) 不压缩系统和隐藏属性的文件: rar a -esh files -f 更新文件。可以在解压或创建压缩文件时使用。命令字符串"a -f"等价于 命令'f',你也可以和命令'm'或'mf'一起使用'-f' 。如果开关'-f'和命 令'x'或'e'一起使用,则只有旧文件能被从压缩文件中解压的新版本替换。 3) 不解压只读文件: rar x -er files -hp[p] 加密文件数据和头。 这个开关和 -p[p] 类似,但是开关 -p 只加密文件数据,而使文件名等 其它信息可见。这个开关加密所有包括文件数据、文件名、大小、属性、 注释和其它块等所有可感知压缩文件区域,所以它提供了更高的安全等 级。在压缩文件中使用-hp 加密,没有密码甚至不可能查看文件列表。 例子: rar a -hpfGzq5yKw secret report.txt 将添加文件 report.txt 到加密的压缩文件secret.rar中,使用密码 'fGzq5yKw' -id[c,d,p,q] 禁用消息。 开关 -idc 禁用版权字符串。 开关 -idd 在操作结束禁止显示“完成”字符串。 开关 -idp 禁止百分比指示。 开关 -idq 打开安静模式, 仅错误消息和问题能被显示。 允许一次使用数个修饰, 如果开关 -idcdp 是正确的。 -ieml[.][地址] 使用 E-mail发送压缩文件。只有 Win32 版本可用。 附加一个使用添加命令创建或被更新的压缩文件到 E-mail 信息中。你需 要有 MAPI 兼容的E-mail客户端来使用这个开关(大部分现代的 E-mail 程序支持MAPI接口)。 你可以在开关中直接输入详细E-mail地址或留为空白。在以后可以由你的 E-mail 程序询问。可以指定用分号或逗号隔开的数个地址。 如果你添加一个'.'字母到 -ieml,成功附加到E-mail中后压缩文件会被 删除。如果创建多卷压缩文件使用这个开关,每一卷都附加单独的 E-mail 信息。 -ierr 发送所有消息到标准错误设备。 -ilog[文件名] 记录错误到文件中 (只有注册版本可用). 把错误信息写到 RAR 目录中的 rar.log 文件中。也可以在开关中指定其 它的日志文件名代替默认的 rar.log,例如,-ilogc:\log\backup.log。 如果指定的文件名不包含路径,日志文件将会使用下列默认创建: 把错误信息写到 RAR 目录中的 rar.log 文件中。如果选项 "名称" 参数 没有指定, 日志文件将会使用下列默认创建: Unix: .rarlog 放在用户的 home 目录中; Windows: rar.log 放在 %APPDATA%\WinRAR 目录中; Dos: rar.log 放在 rar32.exe 文件相同的目录中。 如果 "名称" 参数包含无路径的文件名, RAR 会在默认目录中使用上面指 定的名称创建日志文件.如果你想改变日志文件的位置, 需要在 "名称"参 数中包含路径和文件名。 例如: rar a -ilogc:\log\backup.log backup d:\docs 发生错误时会创建 c:\log\backup.log 日志文件。 -inul 禁止所有消息。 -ioff 在完成操作后关闭计算机。硬件必须支持断电功能。只有 Win32 版本可用。 -isnd 允许声音。 -k 锁定压缩文件. 任何试图改变压缩文件的命令都会被忽略。 -kb 保留损坏的解压文件。 RAR 默认解压后删除 CRC 错误的文件。开关 -kb 指定 CRC 错误的文件 不会被删除。 -m 设置压缩模式: -m0 存储 添加到压缩文件时不压缩文件。 -m1 最快 使用最快方式(低压缩) -m2 较快 使用快速压缩方式 -m3 标准 使用标准(默认)压缩方式 -m4 较好 使用较好压缩方式(较好压缩,但是慢) -m5 最好 使用最大压缩方式(最好的压缩,但是最慢) 如果没有指定这个开关,RAR使用-m3方式(标准压缩)。 默认情况下,RAR 在 -m1 和 -m2 模式中只使用常规压缩算法,高级算法 像声音和真彩处理只有在 -m3..-m5 模式下才启用,提升的文本压缩只有 在 -m4..-m5 中才被激活。默认值可以使用 -mc 开关替代。 -mc<参数> 设置高级压缩参数。 这个开关主要是用于进行测试和试验,在真实环境中通常最好允许 RAR 自动选择最佳参数。请注意,不适当的使用这些开关可能导致非常严重执 行和压缩损失,所以只有在你清楚理解你所要做的时候使用它。 它有下列语法: -mc[参数1][:参数2][模块][+ 或 -] <模块>的位置是指示压缩算法的一个字符,它必须被设置。 它有下列值: A - 声音压缩; C - 真彩色(RGB)数据压缩; D - 增值压缩; E - 32-位 x86 Intel 可执行文件压缩; I - 64-位 Intel Itanium 可执行文件压缩; T - 文本压缩。 在开关结尾的'+'标记应用选择的算法模块处理所有的数据,'-'完全禁用 该模块。如果没有指定标记,RAR 将基于数据和当的压缩模式自动选择 模块。 开关 -mc- 禁止所有可选模块,只允许常规的压缩算法。 <参数1> 和 <参数2> 根据模块而决定的参数,其描述如下。 音频压缩,增值压缩: <参数1> 是通道的字节数 (可以是1 - 31)。RAR 拆分多位声道成单位声 道,例如,两个16位音频声道可以被 RAR 看作每个宽一字节的四个声道。 <参数2> 被忽略。 32位 x86 Intel 可执行文件压缩, 64位 Intel Itanium 可执行文件压缩, 真彩(RGB)数据压缩: <参数1> 和 <参数2> 被忽略。 文本压缩: <参数1> 是 PPM 算法的次序+(可以是 2 - 63)。通常高的值会略微提高 多余数据的压缩率,但是必须有足够的内存来用于 PPM。在缺乏内存的条 件下结果可能相反。更高的规则值会减慢压缩和解压的速度。 <参数2>对于 PPM 可用的以兆字节位单位的内存 (1-128)。更高的值可以 提高压缩率,但是注意PPM压缩和解压使用的内存大小相等,所以创建一 个压缩文件时如果分配太多的内存,其他人在安装了比较少内存的机器上 解压它时可能出现问题。解压缩也可以使用虚拟内存,但是可能变得非常 慢。 例子: 1) 开关 -mc1a+ 强制使用对所有数据使用8位单声道声音压缩算法。 2) 开关 -mc10:40t+ 强制使用对所有数据使用文本压缩优化算法,设置压 缩次序到 10 并分配40 MB内存。 3) 开关 -mc12t 设置压缩次序到 12,设置文本压缩顺序为12,当使用文 本压缩时,让RAR决定何时使用它。 4) 开关 -mct- -mcd- 禁止文本和增值压缩。 -mdKB大小选择字典大小。必须是64,128,256,512,1024,2048或4096或 单个字母 'a','b','c','d','e','f','g'。 这个可变大小的字典是被压缩算法使用的专用的内存区域。如果被压缩文 件的大小(或在一个固实压缩文件中的总文件大小)比压缩文件大许多,则 通常增加字典大小会增加压缩率,减慢压缩速度和增加内存需要。 如果字典比原数据大,RAR可以减少字典大小.它可以减少内存的需要而不 会减小压缩比。 默认可变字典大小是 4096 KB. 例子: RAR a -s -mdd sources *.asm 或者 RAR a -s -md512 sources *.asm 将使用512 KB字典创建固实压缩文件。 -ms[列表] 指定存储文件类型。 指定不压缩而直接存贮的文件类型。这个开关被用来存储已经压缩的文件, 这将帮助增加压缩速度,而不会显著的减小压缩率。 可选参数 <列表> 参数定义使用分号隔开的文件扩展名列表。例如, -msrar;zip;jpg 将强制RAR不压缩直接存储所有的RAR和ZIP压缩文件和 JPG 图像。它也允许在列表中指定通配符文件掩码,所以 -ms*.rar; *.zip;*.jpg 也可以工作。 如果 <列表> 没有被指定,-ms 开关将使用默认的包含下列文件类型的扩 展设置: 7z, ace, arj, bz2, cab, gz, jpeg, jpg, lha, lzh, mp3, rar, taz, tgz, z, zip -mt<线程> 设置线程数。仅可用于 Window 版本。 <线程> 参数可以是从 0 到 16 的值。它定义对于压缩算法活动线程的 推荐数。如果它大于 0,RAR 会使用多线程版本的压缩算法,在多处理 器系统上提供更高的速度。真实的活动线程数可能和指定的不同。 如果 <线程> 是 0,RAR 会使用单线程压缩算法。 改变 <线程> 参数轻微影响压缩率,所以如果所有其它压缩参数相等而 使用不同的 -mt 开关创建的压缩文件不会解压得一样连贯。 如果没有指定 -mt 开关,RAR 会尝试检测可用的处理器的数量并自动 选择优化的线程数。 -n<文件> 仅包含指定的文件 <文件>。通配符在文件掩码的名称和文件部分都可用。 你可以数次指定开关‘-n’。 此关不能替换通常的文件掩码,仍然需要在命令行中输入。它是一个附加 的过滤器限制处理的文件那些仅匹配在 –n 开关中指定掩码的文件。某些 时候它可以帮助减少命令行的度。 例如,如果你需要压缩在 Project 和 Info 文件夹内的所有的 *.txt 和 *.lst 文件,你可以输入: rar a -r text Project\*.txt Project\*.lst Info\*.txt Info\*.lst 或使用开关 -n: rar a -r -n*.txt -n*.lst text Project Info -n@<列表文件> 包含在指定的列表文件中列出的文件。 和 -n<文件> 开关类似,但是从列表文件读取掩码。 示例: rar a -r -n@inclist.txt text Project Info -oc 设置 NTFS 压缩属性。只可用于 Win32 版本。 此开关允许解压文件时恢复 NTFS 压缩属性。RAR 在创建一个压缩文件时 保存“压缩”文件属性,但是如果不指定 -oc 开关就不会恢复它们。 -ol 把符号链接作为链接而不是文件。 只有 Unix 版本可用。 -or 如果相同名字的文件已经存在则自动重命名解压的文件。重命名文件将得 到象 'filename(N).txt' 的名字,'filename.txt' 的位置是原始的文件 名,如果文件存在 'N' 是从 1 增加数字。 -os 保存 NTFS 流。 只有 Win32 版本可用。 这个开关意味着只能在 NTFS 文件系统下使用,并允许储存与文件相关的 交替数据流。在 Windows 2000、XP 和更新的 Windows 版本底下尤其重要, 可以用来保存某些文件依赖信息,如文件描述。如果您使用 RAR 来备份您 的 NTFS 磁盘时,建议您指定这个开关。 -ow 当压缩时保存文件安全信息和解压时恢复它们时,使用这个开关。 Unix 版本的 RAR 当使用这个开关时保存文件所有者和组。 Win32 版本存储所有者、组、文件许可和校验信息,但是你必须有读取 它们的必需的权限。 注意只有 NTFS 文件系统支持在Windows下的文件基 本安全数据。 -o[+|-] 设置覆盖模式。可以在解压或更新文件时使用。下列模式可用: -o 覆盖询问 (默认用于解压文件); -o+ 覆盖所有 (默认用于更新的压缩文件); -o- 跳过已存在的文件。 -o+ 覆盖已存在的文件。 -o- 不覆盖已存在的文件。 -p[p] 压缩时,使用字符串

作为密码加密文件。密码大小写敏感。如果你在 命令行忽略密码,你会看到一个输入密码的提示。 例子: rar a -pmyhoney secret1 *.txt 添加 *.txt文件并用密码"myhoney"加密. -p- 不询问密码 -r 包含子文件夹,可以使用命令: a,u,f,m,x,e,t,p,v,l,c,cf 和 s. 当使用命令 'a','u','f','m' 将处理在所有子目录中以及当工作目 录的中的文件。 当使用命令 x,e,t,p,v,l,c,cf 或 s 将处理在子目录以及当工 作目录中所有压缩文件。 -r- 禁用递归。 在某些情况下,即使没有指定 -r 开关 RAR 也会自动启用递归。开关 -r- 禁止它。 压缩时如果你指定了目录名,目录名不包含通配符,即使 -r 开关没有指定, 默认 RAR 添加目录的内容。如果磁盘根目录没有把通配符作为文件掩码指定, RAR 也会自动启用递归。开关 -r- 禁用此行为。 例子: rar a -r- arc dirname 命令仅会添加空目录 'dirname' 目录并忽略它的内容。下列命令: rar a -r- arc c:\ 会仅压缩 c: 根目录的内容并不会包含子目录。 -r0 和 -r 相似,但是当使用命令 'a','u','f','m' ,将返回包含包括通 配符 '*' 和 '?'的子目录 -ri

[:] 设置优先级和休眠时间。只有在 Windows 版本的 RAR 中可用。 这个开关让 RAR 在多任务环境下时,用来控制系统载入负荷。可用任务 优先级值从 0 到 15。当

等于 0 时,使用默认任务优先级。1 对应 最低的任务优先权,15 - 最高。 休眠时间 是从 0 到 1000 (千分之一秒)的值。这是 RAR 压缩或解 压缩操作期间每次读或写时将会归还到系统的时段。休眠时间设定在几个 相同优先级任务在系统中同时运行时有用。 例子: 使用默认优先级执行 RAR,并且每次读取或写入后有10 ms的休眠 rar a -r -sfx -ri0:10 backup *.* -rr[N] 添加数据恢复记录。这个开关在创建或修改压缩文件被用来添加压缩文件 数据的恢复记录。 -rv[N] 创建恢复卷。这个开关在创建多卷压缩文件时用来创建恢复卷。查看 'rv[N]'命令的详细描述。 -s 创建固实压缩文件。固实格式是一种特别的压缩文件类型。请参考附录中的 “术语表”获得更多信息。 例子: 使用512KB的字典创建固实压缩文件 sources.rar ,包含全部子目录,从 当目录开始,只添加.asm文件: rar a -s -md512 sources.rar *.asm -r -s 根据文件计数创建固实组 和 -s 相似,但是在压缩文件后重置压缩文件的状态。通常减少压缩率, 但是也能减少损坏的固实压缩文件中的文件丢失。 -sc<字符集>[对象] 指定列表文件和压缩包注释文件的字符集。 “字符集”参数是强制的, 可以使用下列值: U - Unicode; A - ANSI (Windows) 编码。仅用于 Windows 版本; O - OEM (DOS) 编码。仅用于 Windows 版本; Unicode 格式的文件必须以 FFFE 或 FEFF Unicode 字符开头, 否则 RAR 会 忽略此开关并作为 ASCII 文本处理。 “对象”参数是可选的, 可以使用下列值: L - 列表文件; C - 命令文件。 它允许指定不只一个对象, 例如, -scolc。如果 '对象' 参数丢失, '字符 集' 会应用到所有对象。 此开关允许指定在 -z[文件] 开关中的文件的字符集, 列表文件和注释文 件在 "cw" 命令中写入。l 例子: 1) rar a -scol data @list 使用 OEM 编码读取 'list' 中包含的名称。 2) rar c -scuc -zcomment.txt data 读取 comment.txt 为 Unicode 文件。 3) rar cw -scuc data comment.txt 写入 comment.txt 为 Unicode 文件。 -se 根据扩展名创建固实组 和 -s 相似,但是如果文件扩展名改变,重置压缩文件的状态。通常减少压 缩率,但是也能减少损坏的固实压缩文件中的文件丢失。 -sfx[名称] 创建自解压压缩文件。如果建立新压缩文件时使用此开关,自解压文件(使 用 default.sfx 模块或在开关中指定)将被创建。在 Windows 版本中, default.sfx 应该在 rar.exe 所在的目录中,在 Unix 中 - 在用户的 home 目录中。在/usr/lib 或 /usr/local/lib 中。 例子: rar a -sfxwincon.sfx myinst 使用 wincon.sfx 自解压模块创建自解压(SFX)压缩文件。 -si[名称] 当创建一个压缩文件时,从 stdin(标准输入)读取数据。选项“名称”参 数允许指定要创建的压缩文件内的标准输入数据的文件名。如果这个参数 丢失,名字会被设为“stdin”。此开关不能和 -v 一起使用。 例子: type Tree.Far | rar a -siTree.Far tree.rar 将把 'type Tree.Far' 作为 'Tree.Far' 文件压缩输出. -sv 创建互不依赖的固实压缩文件 当开始一个新的卷时,RAR 默认尽可能的尝试重置固实格式状态,但是只有 在上一次复位后,又压缩了足够多的数据。(至少几兆字节)。 这个开关会强制 RAR 忽略打包的数据大小,并试图对任何大小的分卷重置 状态。这会降低压缩率,但在固实卷组中的数个卷之一丢失或损坏时可以 增加解压部分数据的机会。 注意有时候 RAR 即使使用这个开关也无法重置状态。例如,当压缩一个 大文件成许多分割卷时就不能完成。RAR 只能在分离文件之间重置状态, 而不能用在单独文件上。 在创建不带卷的压缩文件时忽略。 -sl<大小> 仅处理大小小于在此开关的 <大小> 参数中指定的大小的文件。 参数 <大小> 必须以字节为单位指定。 -sm<大小> 仅处理大小超过在此开关的 <大小> 参数中指定的大小的文件。 参数 <大小> 必须以字节为单位指定。 -sv- 创建互相依赖的固实压缩文件 禁止卷之间重设固实状态。 这将稍微提高压缩率,但是意味着如果数个固实卷之一丢失或损坏时减 少解压部分数据的机会。 在创建不带卷的压缩文件时忽略。 -s- 禁止固实压缩 -t 压缩后测试文件。这个开关在和移动命令组合使用时非常有用,所以只有 压缩文件已经被成功测试后,文件才会被删除。 -ta<日期> 只处理指定日期之后修改的文件。 日期字符串的格式是 YYYYMMDDHHMMSS。它允许在日期字符串中插入'-' 或 ':'的分隔符,并忽略后部区域。例如,下列开关是正确的: -ta2001-11-20在内部它被转换成 -ta20011120000000 并作为"从2001 年11月20日0时0分0秒后修改的区域"对待。 -tb<日期> 只处理指定日期之修改的文件。开关的格式和 -ta<日期> 相同。 -tk 保存原始压缩文件日期。防止当正在改变一个压缩文件时RAR修改文件。 -tl 设置压缩文件的日期为最新文件的日期。强制RAR设置改变的压缩文件的日 期为压缩文件中最新文件的日期。 -tn<时间> 处理指定时间以后的新文件。时间字符串格式时: [d][h][m][s] 例如,使用开关 -tn15d 来处理更新了15天的文件,-tn2h30m 来处理更 新了2小时30分的文件。 -to<时间> 处理指定时间以的旧文件。开关的格式和 -tn<时间> 相同。 -ts[N] 保存或恢复文件时间(修改,创建,访问)。 开关 -tsm 指示 RAR 保存文件的修改时间,-tsc - 创建时间,tsa - 最 近访问时间。开关后的可选参数是 0 和 4 之间的数字来控制文件时间精 度。值‘1’启用 1 秒的精确度,2 - 0.0065536 秒, 3 - 0.0000256,4 或‘+’启用最大的 NTFS 时间精度,等于 0.0000001 秒。值‘0’或‘-’ 意味着创建和访问时间不保存,并且修改时间使用低的(两秒)时间精度。 更高的精度模式添加更多的数据到压缩文件中,使用 -tsm4 -tsa4 -tsc4 组合,让每个文件增加 19 个额外的字节。如果没有指定精度,RAR 使用 ‘4’(高)值。 默认的 RAR 模式是 -tsm4 -tsc0 -tsa0,所以高精度的修改时间被存储, 其它时间被忽略。 当解压文件(精度不相关,但是不能为 0)时指定 -tsc 和 -tsa 开关来设置 创建和访问时间是必需的。默认 RAR 只设置修改时间,即使压缩文件包含 创建和最近修改时间。设置修改时间来解压文件也可以使用 -tsm- 禁用。 如果你需要把这个开关应用到所有的三个时间,也可能忽略这三个类型字母。 例如,-tsm4 -tsa4 -tsc4 能被 -ts4, -ts+ 或 -ts 代替。使用 -ts- 来 只保存低精度的修改时间,或者忽略所有三个文件时间解压。 当创建一个压缩文件时,如果高的模式不被文件系统支持,RAR 会自动减少 精度。在 FAT 中不会超过两秒,在 Unix 中不会超过 1 秒。NTFS 时间精 度是 0.0000001 秒。 操作系统的时间限制解压时能被设置。Windows 允许设置三个时间,Unix - 修改时间和最近访问时间,没有创建时间,DOS 只支持修改时间。 例子: 1) rar a -ts backup 使用最高精确度存储所有文件时间。 2) rar x -tsa backup 存储修改和最近访问时间。开关 -tsm 不是必需的,因为 RAR 把它作为默 认值。 3) rar a -tsm1 -tsc1 backup 存储低精确度的修改和创建时间。没有 -tsm1 RAR 将会保存高精确的修改 时间。 -u 更新文件。 这可在解压或创建压缩文件时使用。命令字符串 'a -u' 和 命令 'u'等效。您也可以使用开关'-u'和命令'm'和'mf'一起使用。如果开 关'-u'使用与命令'x'或'e'一起使用,则在磁盘上不存在的文件和比在磁 盘上的拷贝新的文件将从压缩文件中解压。 -v 创建自动检测大小的卷或列出所有的卷 当正在创建或正在列表卷时这个开关可以使用。 在第一种情况下,它启用卷的自动大小检测,所以新的卷将使用目标媒体 上的所有可用空间。当在可移动磁盘上创建卷时非常便利。你可以在 -v <大小> 的描述中读到更多关于卷的信息。 在第二种情况下,在命令行中当这个开关和'V' 或 'L'命令一起使用,它 强制 RAR 列出从指定卷开始的所有卷的内容。没有这个开关,RAR 只显 示单独的被指定卷的内容。 -v<大小>[k|b|f|m|M|g|G] 建立卷,大小=<大小>*1000 [*1024 | *1]。 默认此开关使用 <大小> 作为一千(1000)字节(非1024 字节)。您也可以 输入符号 "k" 来表示千字节(1024)的大小,或者符号 "b" 表示字节,兆 字节(1024 x 1024)为 -"m",而一百万个字节是 - "M",G字节 - 'g', 十亿个字节 - 'G' 或者使用符号 "f" 从几个预先定义的数值中选择一个。 预先定义的数值有 360、720、1200、1440 或 2880 并会使用当软盘大 小取代。 如果大小被忽略,将使用自动检测。 你可以指定几个 -v 开关来为不同的卷设置不同的大小。例如: rar a -v100k -v200k -v300k arcname 第一卷设为 100 KB 大小, 第二卷设为 200 KB, 剩下的为 300 KB。 如果在可移动磁盘上创建卷,第一卷被创建后,用户将被提示: 创建下一卷: 是/否/全部 此时,您可以改变磁盘。回答'A'将使所有的卷不暂停地被创建。 默认 RAR 卷以'volname.partNNN.rar'格式命名,NNN的地方是卷号。使 用-vn开关可能转换成其它的扩展基本命名规则,卷组中第一卷文件由.rar 的扩展名,以后卷从 .r00 到 .r99 命名。 当解压或测试多卷压缩文件时,你必须只使用第一卷的文件名。如果在驱 动器中没有下一卷并且磁盘可移动,用户会被提示: 插入磁盘带有 <下一卷名> 插入带有正确卷的磁盘并按任意键。 如果在解压过程中,下一卷没有找到或卷放在不可移动磁盘上,RAR 将显 示下列信息后中断: 没有找到 <卷名> 压缩卷不可以被修改。命令'd','f','u','s' 不能在多卷组中使用。 命令'a'只可以用在创建新的多卷序列时。 也许,虽然不太可能,多卷组中文件大小可能比未压缩时大,原因是'存 储'特征(如果大小增加时不压缩)在多卷组中不能启用。 压缩卷可以是自解压格式,这样的压缩文件可使用 '-v' 或 '-sfx'开关 创建。 例子: 创建固定大小的固实分卷压缩文件: rar a -s -v1440 floparch.rar *.* 将创建固实的1440000字节大小的卷。 -vd 创建卷之清除磁盘内容 当使用 '-vd' 时,目标盘上的所有文件和目录都将被删除。这个开关只 能用在可移动磁盘上,使用这个开关不能删除硬盘内容。 -ver[n] 文件版本控制 当在已经存在的压缩文件中更新文件时,强制 RAR 保留一文件版本。 旧版本被命名为'filename;n','n'处是版本号。 当不使用开关 -ver 解压一个压缩文件,rar 默认只解压最近添加的文件 版本,它的名字不能包含数字后缀。但是如果你正确指定了文件名,包括 版本,它也可以解压。例如,'rar x arcname'将只解压最新版本,当使 用 'rar x arcname file.txt;5' 将解压 'file.txt;5',如果它在压缩 文件中存在的话。 解压时如果你不带参数指定-ver开关, RAR 将解压所有和文件掩码匹配的所有文件中的所有版本。这样版本号没 有从未压缩文件名中删除。你也可以使用数字作为-ver的参数来解压一个 具体的文件版本。它将告诉RAR只解压这个版本并从文件名中删除版本号。 例如,'rar x -ver5 arcname' 将只解压第五版本文件。 如果压缩时你指定了‘n’参数,它会限制在压缩文件中文件版本的最大 数字。超过此限制的旧的文件版本会被移除。 -vn 使用旧风格的卷命名法则 默认 RAR 卷以'volname.partNNN.rar'格式命名,NNN的地方是卷号。使 用-vn开关可能转换成其它的扩展基本命名规则,卷组中第一卷文件由 .rar 的扩展名,以后卷从 .r00 到 .r99 命名。它可能有用,如果你要 在 MS DOS下解压一个压缩文件时,不允许在文件名中超过一个点'.'。 -vp 每一卷后暂停 默认 RAR 仅在使用可移动驱动器创建或解压下一卷,进行更换磁盘的 询问。这个开关将强制 RAR 总是进行这样的询问。如果磁盘空间有限而 且你希望创建后立即复制每一卷到其它磁盘中时,可以使用它。 -w

作为工作目录。这个开关可以用来分配临时文件工作目录。 -x 排除指定的文件 ,通配符可以用在名称和文件掩码的文件部分。你 可以数次指定开关'-x'。 如果掩码包含通配符,它应用到当目录和它的子目录。没有通配符它不 递归,所以如果你要在所有文件夹中排除某些“文件名”,你需要指定两 个掩码:用于当目录的“文件名”和用于子目录的“*\filename”。如果 你知道一个文件的确切路径,你可以是使用“路径\文件名”语法来仅排除 “文件名”的此副本。如果你在解压一个压缩文件时使用 -x路径\文件名 语法,“路径”必须是一个压缩文件内的路径,而不是在解压后的磁盘上 的文件路径。 例子: 1) rar a -r -x*.bak -x*.rar rawfiles *.bak 和 *.rar 不会添加到 rawfiles 中 2) rar a -r -x*\temp -x*\temp\* savec c:\* 压缩 C: 上除了 Temp 文件夹中的临时目录和文件外的所有文件 3) rar x -x*.txt docs 从 docs.rar 解压除了 *.txt 外的所有文件 -x@ 排除指定文件列表中列出的文件。如果你使用 -x@ 而没有列表文件名参数, 它会从标准输入设备读取文件名。 例子: rar a -x@exlist.txt arch *.exe -y 对于所有询问全部回答是。 -z[f] 从文件中读取压缩文件注释。如果你需要指定注释文本文件的字符 集使用 -sc 开关。如果 没有指定, 注释从标准输入设备读取。 限制 ~~~~ 路径名度小于 259 个字符。 最大的压缩文件注释的度是 62000 字节。 命令限制: 命令 'd','u','f','c','cf' 不能用于分卷压缩文件。 命令 'a' 不能用来更新分卷压缩文件,只能用来创建一个新的。 返回值 ~~~~~~ RAR 成功操作后返回 0 。非 0 返回码意味着操作由于某种错误被取消: 255 用户中断 用户中断操作 9 创建错误 创建文件错误 8 内存错误 没有足够的内存进行操作 7 用户错误 命令行选项错误 6 打开错误 打开文件错误 5 写错误 写入磁盘错误 4 被锁定压缩文件 试图修改先使用 'k' 命令锁定的压缩文件 3 CRC 错误 解压缩时发生一个 CRC 错误 2 致命错误 发生一个致命错误 1 警告 没有发生致命错误 0 成功 操作成功 术语表 ~~~~~~ 压缩文件 包含一个或一个以上文件的压缩和/或加密的特定文件。 压缩 减少数据大小的编码方法。 CRC 循环冗余检查。为了验证数据正确性检查特定信息的数学计算方法。 SFX 压缩文件模块执行时用于解压文件(自解压文件模块),通常是一个 .EXE格式文件。 固实 对压缩文件使用专用的压缩方式(把所有文件看成一个连续的数据 流)打包。当压缩大量小文件特别有利。 卷 压缩文件的拆分部分。把一个压缩文件拆分成存储在磁盘上。固实 格式卷解压时必须从序列中的第一个开始。 版权所有 (c) 1993-2009 Alexander Roshal

用户手册 ~~~~~~~~ RAR 3.30 32 位控制台版本 ~~~~~~~~~~~~~~~~~~~~~~~~ =-=-=-=-=-=-=-=-=-=-=-=-=-=- 欢迎使用 RAR 压缩文件管理器! -=-=-=-=-=-=-=-=-=-=-=-=-=-= 简介 ~~~~ RAR 是一个强力压缩工具,允许你管理和管理压缩文件。控制台 RAR 只支持 RAR 格式,带有的 ".rar" 扩展名的文件。ZIP 和其他格式不被支持。Windows 用户可以 安装图形界面 RAR 版本 - WinRAR,它可以处理更多的压缩文件类型。 RAR 的功能包括: * 高度成熟的原创压缩算法 * 对于文本、声音、图像和 32 位和 64 位 Intel 可执行程序压缩的特殊优化算法 * 获得比类似工具更好的压缩率,使用'固实'压缩 * 身份校验(只有注册版本可用) * 自解压压缩文件和分卷压缩(SFX) * 对物理损伤的压缩文件的恢复能力 * 锁定,密码,文件顺序列表,文件安全和更多…… 配置文件 ~~~~~~~~ Unix 版本的 RAR 从用户的 home 或 /etc 目录中的 .rarrc 文件读取配置文件信息 (存储在 HOME 环境变量中) Windows 的版本 RAR 从 rar.ini 文件读取配置文件信息,它放在 rar.exe 文件相 同的目录中。 这个文件包含下列字符串: 开关= 环境变量 ~~~~~~~~ 可以通过建立"RAR"环境变量来添加默认参数到命令行中. 例如,在 UNIX 中,下列命令行可以被添加到你的配置中: RAR='-s -md1024' export RAR RAR 将使用这个字符串作为命令行的默认参数,并将使用 1024KB 字典大小来创建 “固实”压缩文件。 RAR 控制选项使用下列优先级: 命名行开关 最高优先级 在 RAR 变量中的开关 低优先级 保存在配置文件中的开关 最低优先级 日志文件 ~~~~~~~~ 如果在命令行或配置文件中指定开关 -ilog ,RAR 将会把处理压缩文件中遇到的错误 等写到日志文件中。在 Unix 中,这个文件名为 .rarlong,放在用户的 home 目录中。 在 Windows 中,它名为 rar.log,放在 rar.exe 文件相同的目录中。开关 -ilog 允 许改变默认的日志名。 固实压缩的文件列表 - rarfiles.lst ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rarfiles.lst 包含用户定义的文件列表,告诉RAR添加文件到固实压缩文件时的顺序。 它可以包含文件名通配符和指定项目-$default。默认项目定义了这个文件中与其他 项目不相符时的顺序清单位置。 注释字符是 ';'. 在 Windows 中,这个文件应该放在RAR所在的目录中。 在 Unix 中- 放在用户的 home 目录或 /etc中。 提高压缩率和操作速度的提示: - 在压缩文件中,小文件应该被组织在一起; - 频繁被处理的文件应该放在开始的位置。 普通的掩码越靠近顶端优先权就越高,但是这个规则存在例外。如果 rarfiles.lst 包含两个掩码,并且所有文件及匹配第一个掩码,也匹配第二个掩码, 第一个掩码 将拥有更高的优先权,即使它被放到第二个后面。例如,存在*.cpp 和 f*.cpp 掩码 的情况下,f*.cpp 拥有更高的优先权。 RAR 命令行语法 ~~~~~~~~~
技术基础 New Folder 多样式星期名字转换 [Design, C#] .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎 正式发布表达式计算引擎WfcExp V0.9(附源码) 运算表达式类的原理及其实现 #实现的18位身份证格式验证算法 身份证15To18 的算法(C#) 一组 正则表达式 静态构造函数 忽略大小写Replace效率瓶颈IndexOf 随机排列算法 理解C#中的委托[翻译] 利用委托机制处理.NET中的异常 与正则表达式相关的几个小工具 你真的了解.NET中的String吗? .NET中的方法及其调用(一) 如何判断ArrayList,Hashtable,SortedList 这类对象是否相等 帮助解决网页和JS文件中的中文编码问题的小工具 慎用const关键字 装箱,拆箱以及反射 动态调用对象的属性和方法——性能和灵活性兼备的方法 消除由try/catch语句带来的warning 微软的应试题完整版(附答案) 一个时间转换的问题,顺便谈谈搜索技巧 .net中的正则表达式使用高级技巧 (一) C#静态成员和方法的学习小结 C#中结构与类的区别 C#中 const 和 readonly 的区别 利用自定义属性,定义枚举值的详细文本 Web标准和ASP.NET - 第一部分 XHTML介绍 在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把Array转换为ArrayList C# 2.0 在.NET 2.0中,让你的组件也可以绑定 .NET20 一种简单的窗口控件UI状态控制方法 翻译MSDN文章 —— 泛型FAQ:最佳实践 Visual C# 3.0 新特性概览 C# 2.0会给我们带来什么 泛型技巧系列:如何提供类型参数之间的转换 C#2.0 - Object Pool 简单实现 Attributes in C# 手痒痒,也来个c# 2.0 object pool 泛型技巧系列:用泛型打造可复用的抽象工厂 体验.net2.0的优雅(四):Provider、策略、控制反转和依赖注入 泛型最佳实践 asp.net 2.0下嵌套masterpage页的可视化编辑 C# 2.0与泛型 动态调用对象的属性和方法——性能和灵活性兼备的方法 泛型技巧系列:用泛型打造可复用的抽象工厂 泛型技巧系列:如何提供类型参数之间的转换 .NET 2.0 泛型Quiz Visual Studio 2005体验泛型编程 C++ 泛型编程系列讲座之实施 泛型技巧系列:简单类型选择器 C# 泛型简介 我眼中的C#2.0新功能特性 泛型技巧系列:避免基类及接口约束 New Article 不该用Generics实现Abstract Factory的理由 C#2.0-泛型 C#2.0-extern C#2.0-可空类型 C#2.0-分部类 C#2.0-迭代器 C#2.0 的新增功能学习 泛型的序列化问题 .NET 2.0 泛型在实际开发中的一次小应用 C#2.0 Singleton 的实现 .Net Framwork 强类型设计实践 通过反射调用類的方法,屬性,字段,索引器(2種方法) ASP.NET: State Server Gems 完整的动态加载/卸载程序集的解决方案 从NUnit中理解.NET自定义属性的应用(转载) 如何在.NET中实现脚本引擎 (CodeDom篇) .NET的插件机制的简单实现 我对J2EE和.NET的一点理解 难分难舍的DSO(一) InternalsVisibleToAttribute,友元程序集访问属性 Essential .NET 读书笔记 [第一部分] NET FrameWork的Collections支持 .NET的反射在软件设计上的应用 关于跨程序集的反射 实现C#和VB.net之间的相互转换 深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白 asp.net 运行机制初探(httpModule加载) 利用反射来查看对象中的私有变量 关于反射中创建类型实例的两种方法 ASP.Net应用程序的多进程模型 NET委托:一个C#睡故事 [推荐] - [原创] Microsoft .NET策略及框架概述 卸载Class? Web Form 窗体 如何实现web页面的提示保存功能 在ASP.Net中两种利用CSS实现多界面的方法 如何在客户端调用服务端代码 页面一postback,它就显示页面的最顶端,怎样让它定位在某一位置? 如何保证页面刷新后的滚动条位置 清除网页历史记录,屏蔽后退按钮! 如何传值在2个页面之间 :要求不刷新父页面,并且不能用Querystring传值 Asp.net地址转义(分析)加强版 Web的桌面提醒(Popup) Using the Popup Object Click button only once in asp.net 2.0 Coalesys PanelBar + R.a.d Treeview +Xml 构建的Asp.net 菜单和权限管理模块 突破屏蔽限制,自己的网站使劲弹新IE窗口 对页面SCROLLING的CSS不能生效原因 .Net 中IE使用WinForm控件的使用心得。 动态加载用户控件的组件!(终结MasterPages技术) 在ASP.NET 1.1下实现模板化站点的新思路 在ASP.Net中两种利用CSS实现多界面的方法 用于弹出ModalDialog进行数据选择的控件 使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法 制作一个简单的多页Tab功能 一完美的关于请求的目录不存在而需要url重写的解决方案! 在C#中实现MSN消息框的功能 XmlHttp实现无刷新三联动ListBox 鼠标放在一个连接上,会显示图片(类似tooltip) 使用microsoft.web.ui.webcontrols的TabStrip与IFame组件,达到页的切换效果 HttpModule 实现 ASP.Net (*.aspx) 中文简繁体的自动转换,不用修改原有的任何代码,直接部署即可! 服务器自定义开发二之客户端脚本回发 Web开发: 使用URL重写WEB主题切换 如何在Asp.Net1.1中实现页面模板(所谓的MasterPage技术) Tool Tip 示例(FILTER版) Tool Tip示例 (htc版) 一个.net发送HTTP数据实体的类 按键跳转以及按Enter以不同参数提交,及其他感应事件 动态控制Page页的Head信息 SubmitOncePage:解决刷新页面造成的数据重复提交问题 SharpRewriter:javascript + xml技术利用#实现url重定向 采用XHTML和CSS设计可重用可换肤的WEB站点 asp.net的网址重定向方法的比较:面向搜索引擎友好 也谈 ASP.NET 1.1 中 QueryString 的安全获取写法 ASP.NET运行模式:PageHandlerFactory 利用搜索引擎引用来高亮页面关键字 网站首页的自动语言切换 应用系统的多语言支持 (一) 应用系统的多语言支持 (二) 自动返回上次请求页面(小技巧) ASP.NET 2.0 控件 ASP.NET 2.0 验证控件新的功能 DataGridView中如何在textbox列中限制输入。 ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu ) 体验.net2.0的优雅(3) -- 为您的 SiteMap 添加 控制转发功能 GridView控件使用经验 ASP.NET 2.0:弃用 DataGrid 吧,有新的网格控件了! ASP.NET2.0控件一览---标准控件(1) ASP.NET2.0控件一览---标准控件(2) ASP.NET 2.0中使用webpart系列控件 ASP.NET 2.0 中实现跨页提交 新控件、管理外观、布局及其它用户体验 ASP.NET 2.0 缓存技术 (原创) asp.net 2.0中的theme主题覆盖问题 asp.net 2.0中利用app_offline.htm功能 .NET 2.0中的字符串比较 小试ASP.NET 2.0的兼容性 为 asp.net 2.0 的菜单控件增加 target 属性 ASP.NET 2.0 的内部变化 常见的 ASP.NET 2.0 转换问题和解决方案 Asp.Net2.0无刷新客户端回调 体验.net 2.0 的优雅(1) -- 异步WebService调用 ASP.NET 2.0页面框架的几点新功能 ASP.NET 2.0 中收集的小功能点 asp.net2.0中的webpart使用小记 2.0问题、错误解决办法 ASP.NET 2.0使用Web Part创建应用程序之二(共二) 体验 .net2.0 的优雅(2) -- ASP.net 主题和皮肤 NET2.0系列介绍(一).NET 2.0 中Web 应用程序主题的切换 ASP.NET 2.0 中Web 应用程序主题的切换 2.0正式版中callback的一些变化+使用示例(ASP.NET 2.0) Server Side ViewState 在服务器端存贮ViewState (ASP.NET 2.0) VS2005 ASP.NET本地化学习笔记&感受 在自定义Server Control中捆绑JS文件 Step by Step 深度解析Asp.Net2.0中的Callback机制 使用 Web 标准生成 ASP.NET 2.0 Web 站点 ASP.NET 2.0基于SQLSERVER 2005的aspnetdb.mdf部署 ASP.NET 2.0 Security FAQs Asp.net 2.0功能体验,细节之Web控件(一) 隐藏控件 Asp.net 2.0功能体验,总体设计思想 Asp.net 2.0 WebPart使用经验点滴 革新:.NET 2.0的自定义配置文件体系初探 关于如何在ASP.NET 2.0中定制Expression Builders 怎么在ASP.NET 2.0中使用Membership asp.net 2.0-实现数据访问(1) ASP.NET 2.0 新特性 .NET 2.0里使用强类型数据创建多层应用 在MastPage中引用脚本资源 2.0正式版中callback的一些变化+使用示例(ASP.NET 2.0) asp.net 2.0 新特性 Visual Web Development 2005开发ASP.NET使用小技巧 ASP.NET 2.0 异步页面原理浅析 [1] [原] 自定义通用System.Web.UI.IHierarchicalDataSource简单实现 在 ASP.NET 2.0 中创建 Web 应用程序主题 ASP.NET 2.0 中的数据访问 ASP.NET 2.0:弃用 DataGrid 吧,有新的网格控件了! 将 ASP.NET 2.0 应用程序服务配置为使用 SQL Server 2000 或 SQL Server 2005 ASP.NET 2.0 中的数据源控件 使用 ASP.NET 2.0 ObjectDataSource 控件 ASP.NET 2.0 的内部变化 使用SQL Cache Dependency 代替 Ibatisnet 提供的CacheModel ASP.NET 2.0中小心Profile命名冲突 使用ASP.NET 2.0 Profile存储用户信息[翻译] Level 200 [ASP.NET 2.0]PageParser.GetCompiledPageInstance中存在一个Bug 如何在DotNet 2的登录组件中检索用户的锁定状态及解锁? ASP.NET 2.0, 想说爱你不容易 SqlDataSource WEB控件:当DeleteCommandType= 遭遇 ASP.NET 2.0 只读 TextBox 回发后信息丢失的 bug asp.net2.0:扩展ImageButton控件定制自己需要的功能 ASP.NET 2.0 正式版中无刷新页面的开发(示例代码的补充) ASP.NET2.0中themes、Skins轻松实现网站换肤! ASP.NET 2.0 中的代码隐藏和编译 ASP.NET 2.0 Language Swithcer and Theme Swicher 多语言转换和多样式主题转换 ASP.NET2.0 ObjectDataSource的使用详解(1) ASP.NET2.0 ObjectDataSource的使用详解(2) TextDataSource(1) — DataSourceControl内幕 TextDataSource(2) — 翠花,上“数据” ASP.NET2.0 ObjectDataSource的使用详解(3) ASP.NET2.0 快速入门 ----默认中的主题外观 数据库开发 ADO.NET 通过DataTable获得表的主键 ADO.NET 2.0 操作实例 ADO.NET 2.0 大批量数据操作和多个动态的结果集 ADO.NET 2.0 异步处理 在ASP.NET中使用WINDOWS验证方式连接SQL SERVER数据库 改进ADO.Net数据库访问方式 ASP.NET 2.0 绑定高级技巧 简单实用的DataSet更新数据库的类+总结 [ADO.NET]由数据库触发器引发的问题 为ASP.NET封装的SQL数据库访问类 DataTable.Select方法的性能问题 .NET 2.0里使用强类型数据创建多层应用 ADO.NET实用经验无保留曝光 有了System.Data.IDataReader,一切皆成数据 理解DataSet的数据缓存机制 存储过程 可按任意字段排序的分页存储过程(不用临时表的方法,不看全文会后悔) 常用sql存储过程集锦 存储过程中实现类似split功能(charindex) 通过查询系统表得到纵向的表结构 将数据库表中的数据生成Insert脚本的存储过程!!! 2分法-通用存储过程分页(top max模式)版本(性能相对之的not in版本极大提高) 分页存储过程:排序反转分页法 优化后的通用分页存储过程 sql语句 一些Select检索高级用法 SQL server 2005中新增的排序函数及应用 根据基本表结构及其数据生成 INSERT ... 的 SQL 简便的MS SQL 数据库 表内容 脚本 生成器 将表数据生成SQL脚本的存储过程 直接从SQL语句问题贴子数据建表并生成建表语句的存储过程 从SQL中的一个表中导出HTML文件表格 获取數据库表的N条记录 几段SQL Server语句和存储过程 生成表中的数据的脚本 最详细的SQL注入相关的命令整理 Oracle Oracle中PL/SQL单行函数和组函数详解 mssql+oracle Oracle编程的编码规范及命名规则 Oracle数据库字典介绍 0RACLE的字段类型 事务 CMT DEMO(容器管理事务演示) 事务隔离性的一些基础知识 在组件之间实现事务和异步提交事务(NET2.0) 其它 在.NET访问MySql数据库时的几点经验! 自动代码生成器 关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法 发布Oracle存储过程包c#代码生成工具(CodeRobot) New Folder XCodeFactory3.0完全攻略--序 XCodeFactory3.0完全攻略--基本思想 XCodeFactory3.0完全攻略--简单示例 XCodeFactory3.0完全攻略--IDBAccesser XCodeFactory2.0完全手册(中) XCodeFactory2.0完全手册(上) XCodeFactory3.0Beta1推出 ! SQL Server 2005 SQL Server 2005的几个新功能 在SQL Server 2005中解决死锁 在 SQL Server 2005 中查询表结构及索引 sql server 2005中的DDL触发器 在 SQL Server 2005 中使用表值函数来实现空间数据库 SQL Server 2005的30个最重要特点 同时安装sql2000和sql2005的经验 类如何与界面绑定 在Asp.net中如何用SQLDMO来获取SQL Server中的对象信息 使用Relations建立表之间的关系并却使用PagedDataSource类对DataList进行分页 通过作业,定时同步两个数据库 SQLSERVER高级注入技巧 利用反射实现ASP.NET控件和数据实体之间的双向绑定,并且在客户端自动验证输入的内容是否合法 asp.net报表解决方法 SQLDMO类的使用 SQL过程自动C#封装,支持从表到基本存储过程生成 使用SQLDMO控制 SQL Server 使用SQL-DMO实现定制SQL Scripts Create Tables and Build inserts from Tables by using Mygeneration Templates(Sql Server) C# 获取数据库中某个某个表的创建脚本 DbHelperV2 - Teddy的通用数据库访问组件设计和思考 也论该不该在项目中使用存储过程代替SQL语句 如何使数据库中的表更有弹性,更易于扩展 存储过程——天使还是魔鬼 如何获取MSSQLServer,Oracel,Access中的数据字典信息 C#中利用GetOleDbSchemaTable获取数据库内表信息[原创] 如何解决ACCESS中SELECT TOP语句竟然返回多条记录的问题? Asp.net 利用OleDb的GetOLEDBSchemaTable方法得到数据库架构信息 用于 Visual Studio .Net 的 IBM DB2 开发外接程序 第2章 并发操作的一致性问题 (2) Using sqlite with .NET Visual Studio 2005 中的新 DataSet 特性 MySQL 和 .Net2.0配合使用 与DotNet数据对象结合的自定义数据对象设计 (二) 数据集合与DataTable 与DotNet数据对象结合的自定义数据对象设计 (一) 数据对象与DataRow ASP.NET中大结果集的分页[翻译] .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常 Ado.net 与NHibernate的关系? 动态创建数据库 SQL Server数据库安全规划全攻略 .net通用数据库访问组件SQL Artisan应用简介1 在Framework1.0下同时连接SqlServer和Oracle的一些体会 XML XPath XPath最通俗的教程(ZZ) XPath中相对路径和绝对路径 XPath 简单语法 Asp.Net(C#)利用XPath解析XML文档示例 XSL .Net框架下的XSLT转换技术简介 一个XSLT的简单例子 XSLXSLT板主题整理 xsl入门的好文章 新手学习XSL的好东西 XSL语法介绍 XSL学习心得 - 调用属性值 XSLT与XML转换的详细介绍 功能应用 读写搜索 基础教程 RSS Web2.0时代,RSS你会用了吗?(技术实现总结) 知识集锦:三分钟全面了解 Blog 和 RSS C#+ASP.NET开发基于Web的RSS阅读器 ASP.NET RSS Toolkit(RSS工具) Serialize Your Deck with Positron [XML Serialization, XSD, C#] 如何用RSS技术升级您的网站 RSS技术在行业中的应用三案例 RSS的力量 为自己的网站添加RSS功能 建立自己的RSS asp.net+c#+sql生成rss2.0代码 如何获取远程RSS内容? C#如何实现读取RSS VC# 2005 Screen Saver Starter kit里的Rss处理类分析 使用XmlHttp与Javascript实现对RSS的读取 WEB BUILDER中的动态页面生成 WebBulider 中的RSSWebpar — 建立自己的 RSS 阅读器 RSS 2.0规范 C#版简易RSS阅读器(新增读取OPML功能) C#版简易RSS阅读器 asp.net 页面中生成 RSS 2.0 提要 用 Ajax 和 RSS 攒个首页新闻 用RSS来整合内容以满足不同的需要 简单的在线RSS阅读器(原创) 用户自定义配置接点读取 通用方案 利用XmlDocument更新Xml文件中的数据 XML的特征以及一些用途 如何创建一个XML文件,然后创建一个与之关联的样式表文件? Rss为什么会兴起?什么时候会被替代? 遍历指定文件夹下所有的xml文件并动态生成HTML页面 通过XML来远程抓娶图片的代码 .Net1.0和2.0下 soap序列化和binary序列化的比较 NET中书写XML的一种简单方法 适用于IE浏览器及非IE浏览器的xmlhttp脚本 用实例说明如何用JavaScript生成XML XML驱动开发 XamlReader.Load(): Build Up Your Own XamlPad 如何理解xslt中模板调用 Web Service 从WEB SERVICE 上返回大数据量的DATASET MSMQ,Enterprise Service, DotNet Remoting,Web Service 的优缺点 动态调用web服务 Web服务最佳实践(翻译) HTTP协议下用Web Service上传大文件的解决方案 与大家分享一些Web Service的经验 Web Service Security --- Introduction XML Web Service 安全性 SOA 设计原则和 Web 服务中的数据传输 解决内网通过代理服务器访问外网部署WebService报错问题“请求因 HTTP 状态 407 失败” 对象与状态 Application Session 如何得到Sessionid的值 Session研习笔记 Cookie cookie 学习总结 ViewState ASP.NET 小技巧:重写 ViewState 的存储目的地,以提高页面性能 由重写ViewState存储目的而想到的 [总结]关于在线用户列表的统计! Persistent Strategy (1) - 问题定义与实现 Persistent Strategy (2) - Xml序列化的应用 利用HttpModuler实现WEB程序同一时间只让一个用户实例登陆 控件 DataGrid 简单实用的DATAGRID组件 为DataGrid创建自定义列控件(二) 为DataGrid创建自定义列控件(一) 为DataGrid创建自定义列控件(三) 在ASP.NET环境下完整的datagrid填充数据后界面动态显示填充方案 在dataGrid中拖动改变列宽度,在asp.net中 用javascript实现dataGrid表头排序 存储过程DataGrid分页及注意点 在后代码里创建DataGrid控件 为DataGrid自定义分页添加自定义导航和分页信息 如何利用DataGrid纵向显示数据? 如何用DataGrid实现类似DataList多列的效果 竖表转横表(支持多列) 竖表变横表(支持固定列) 通用分页控件(DataGrid,DataList,Repeater都可以用它来分页) 如何同时选择DataGrid的多行 DataGrid单元格移动变色,点击变色,双击取消颜色,排序. 分页管理器实现 oButton加入DataGrid模板列引起的问题。 将RadioButton加入到DataGrid模板列后单选简单实现 用c#实现将DataGrid中的数据导为microsoft office excel 2003 TreeView ASP.NET环境下完整的treeview使用类 C#加javaScripts实现选中树节点后显示节点内容(微软TreeView) treeview 的使用心得 FlyTreeView for ASP.NET 3.2 破解攻略 用Ajax技术让IE Web Control Tree View实现数据量读取 我在使用C#中Treeview与解析XML遇到的问题! TreeView父子联动效果保持节点状态一致 Asp.Net 2.0 TreeView的Checkbox级联操作 DataList Html控件 table动态改变颜色包括一个边框 功能超强的表格(上下左右移动,添加删除行列,导出) 用户控件开发 ASP.NET 服务器控件授权 为控件添加自定义属性和事件 让你的控件属性注释支持多语言 自定义UserControl的属性为什么不能在设计时显示在属性窗口中 asp .net 服务器控件开发心得 今天你写控件了吗 --Asp.net服务器控件开发系列文章 汇总 将ASP.NET用户控件转化为自定义控件 TextBox 创建具有自验证功能的textbox控件 textbox上实现右键菜单 给FreeTextBox 3.0.5 添加上QQ和MSN表情 FreeTextBox中存在一个严重的安全漏洞 DOTNET2.0 的编辑器:WebHtmlEditor 1.5 Release提供在线演示和下载 FreeTextBox使用详解 (版本3.1.1) 弹出式选择文本控件 ASP.NET: Custom AutoCompleteTextBox WebControl [With Source Code] Button 水晶报表 水晶报表数据填充(一种推模式,两种拉模式)类库 RDLC报表(一) RDLC报表(二) 其他控件 让asp.net默认的上传组件支持进度条反映 HtmlTextWriter学习笔记 用户控件例码 ASP.net下的台日历控件源代码(不刷新页面) ASP.net下DataGrid的单项选择控件 个ASP.Net的DataGrid分页控件,在Oracle数据库下,每次只取当页的数据,不使用存储过程 自动获取当日期下一周的年月日代码 asp.net下的日历控件源代码 写了一个live.com的Gadget——农历日历 令你心动的Asp.net 开发中的MessageBox控件 WebForm的MessageBox类 复合控件开发系列之一 年月日三联动下拉框 下拉日期控件 客户端计时器控件(clientTimer)的c#源码 在线考试系统中卷面计时的一点思考 GridView GridView 控件使用不完全指南! GridView 控件使用不完全指南!(续一) ASP.NET2.0中Gridview中数据操作技巧 一套可嵌入或独立使用的翻页控件: WebPager(附源码) Web进度条的简单方案 ComponentArt WebUI3.0控件使用方法 在ASP.NET页面中使用SolpartMenu控件 共享两个做项目最常用功能操作的封装类 国内报表设计器的分析 基于Ajax的日期控件 缓存服务与性能优化 通过系统配置来提高ASP.NET应用程序的稳定性 通过系统配置来提高ASP.NET应用程序的稳定性(续) 异步加载图片,提高HTML性能 负载均衡环境下缓存处理 网站速度优化模块HttpCompressionModule [连载]Tuning .NET Performance [连载]Tuning .NET Performance [连载]Tuning .NET Performance 连载]Tuning .NET Performance 安全与验证 加密解密 使用证书来做RSA非对称式加密 自已做的一个加密软件,超好用而且加密强度极高,公布源码 身份权限审核 使用URL参数+Controls层实现网站用户权限管理 系统分析中大家是怎样设计系统的多级权限控制的?? 多级权限设置请教。 基于角色的权限控制 AspNetForums中基于角色的权限控制 asp.net页面如何控制页面依据不同用户权限有不可见、可见、编辑 三种操作权限? 请问在SmartClient应用中,如何做到科学的身份验证和权限分配?~~UP有分 做过权限管理和想做权限管理的人进来(附我的思路) 关于权限设计的探讨 Asp.net中基于Forms验证的角色验证授权 用户权限系统设计方案 权限控制系统的设计 统一用户及权限管理系统 权限系统:分散实现、关注变化 关于权限管理的系统的构思 EsbAOP应用--权限管理 asp.net能实现身份认证的EMAIL发送方法(c#版本) 单点登录(SSO)的核心--kerberos身份认证协议技术参考(一) 单点登录(SSO)的核心--kerberos身份认证协议技术参考(二) 单点登录(SSO)的核心--kerberos身份认证协议技术参考(三) 权限系统概要(收集,整理) membership,想说爱你不容易 蛙蛙推荐:web下的授权简单解决方案 将权限引入系统的探索 数据库有效验证 浅谈在ASP.NET中数据有效性校验的方法 XML Schema Validator Class JSClientValidator-客户端javascript验证新模式 如果做到安全的系统之验证用户输入. 部署安全 查看贴子内容 CLI里面的秘密……(二)强命名、元数据以及文件结构(上半部分) Assembly学习心得 asp.net 保护网站不受用户上传文件的侵害 在设置窗体身份验证时设置个别页面不需要进行验证 基于Web应用程序的安全问题之一Cross-Site Scripting Vulnerabilities 代码安全 基于强名称签名的代码访问保护及其改进 防止对 Visual Basic .NET 或 C# 代码进行反相工程 如何防止 DLL 被反编译 揭开.NET程序保护的秘密 如何建立有效的.Net软件注册保护机制 由浅至深,谈谈.NET混淆原理 (一) 由浅至深,谈谈.NET混淆原理 (二) 最简单的混淆 由浅至深 谈谈.NET混淆原理(三)-- 流程混淆 由浅至深 谈谈.NET混淆原理 (四) -- 反混淆(原理 + 工具篇) 由浅至深,谈谈.NET混淆原理 -- 五(MaxtoCode原理),六(其它保护方法) 看了下面那篇“Crack别人应用程序”的文章有感,简述.Net下的应用程序授权。 vs2003中设计强名称程序集并制作安装入GAC的MSI 无法破解的软件注册码算法 保护你的代码——谁动了我的组件? ASP.NET中的单点登录 Cookie 支持二级域名和FormsAuthentication 加强版 论电子签章(Electronic Signature)在C#中的实现方法 使用IHttpHandler防止非法链接 使用 Ildasm, ILasm, Peverify 来 Crack 别人写的应用程序。 ASP.NET2.0应用中定制安全凭证之实践篇 创建安全的ASP.NET虚拟主机 实现关于跨二级域名和1.1和2.0版.net Forms身份验证体制的问题和解决办法. Kerberos简介 在ASP.NET中防止注入攻击[翻译] 封装了一个极其易用的加密解密类,支持DES、三重DES、Rijndael、RC2、MD5、以及非对称加密算法RSA 学习一下 .net framework 中有关安全的内容 学习一下 .net framework 中有关安全的内容(续) 环境配置与部属 使用ASP.NET的跟踪服务 无ASPX文件部署(续) 无aspx文件部署 aspx->cs->dll 如何把用http访问的网页转换用https访问 一个配置IIS的问题 在Apache环境下成功的运行ASP.NET 关于通用配置管理模块的思考-续(用XmlDocument 还是DataSet) 在.net中使用强类型来读取配置信息 Asp.net网站的ClickOnce自动部署(1)-自动部署的内容 Asp.net网站的ClickOnce自动部署(2)-虚拟目录的配置 Asp.net网站的ClickOnce自动部署(3)-虚拟目录的配置 web.config文件自定义配置节的使用方法 模仿AppSettings进行web.config的自定义节读取[简单实用型] 关于无aspx文件部署,我的一些探索心得 .NET配置文件解析过程详解(二) Asynchronous Pluggable Protocols Microsoft CRM3.0 多服务器安装部署过程 解决w3wp.exe内存占用问题 实战1.1下Web.Config配置标记configSections 系统设计与项目管理 系统设计 分层开发思想与小笼包 N层企业级架构模板 系统设计的一些原则 在UI层使用Domain逻辑的一些探讨 在C#程序中实现插件架构 组件设计实战--组件之间的关系 (Event、依赖倒置、Bridge) 逻辑设计的例子 一个.net的系统的AOP设计思路一——NHibernate和界面/对象映射层 设计和编写可复用的代码 基于工作流程系统日志生成业务流程模型 SVG + Javascript + ASP.NET + WebService开发楼宇管理系统(一) 系统分析员,让我头痛 .NET下的域对象持久模式 业务流程管理综述 动态工作流的设计 提升软件的用户体验 应用软件的合理性 架构(Architecture)和框架(Framework)杂谈 小议模型 再议模型 软件设计评价 软件设计评价(续) 理解架构师 架构师不是建筑师 MDA(模型驱动架构) 家庭财务总管--软件设计 应用系统架构设计-补全篇 对Web平台和软件架构的一些看法 关于多层设计想到的问题-涉及Nhibernate和Log4Net 谁拥有接口? Codd提出的RDBMS的12项准则 一个糟糕的设计 业务系统里面常见的方法接口设计 将UI和UI控制分离 DotNet软件开发框架 细节决定成败:业务拦截器 广告管理系统的UML分析与设计 软件的架构设计 框架不是框框—应用框架的基本思想 创建成功的工程 软件可行性分析 GIS系统与一个好的软件架构,Why not and how? 直观而简单的解决方案--软件设计的永恒追求 企业开发基础设施--序 企业开发基础设施--类厂服务 企业开发基础设施--事件通知服务 面向对象 基于Visual C#的接口基础教程 基于C#的接口基础教程之一 基于C#的接口基础教程之二 基于C#的接口基础教程之三 基于C#的接口基础教程之四 基于C#的接口基础教程之五 基于C#的接口基础教程之六 基于C#的接口基础教程之七 小结 一个代理的例子 关于委托事件的一两个很好的例子! 依赖倒置 细说继承关系映射 面向对象与面向组件小议 C#中接口多重继承的注意事项 [ASP.NET入门随想四]吸星大法——页面的OO思想篇 如何在类中编写事件 OOD经验原则总结 [ASP.NET入门随想六]大航海家——OO思想的类间关系 接口跟基类的一点点感受 [ASP.NET入门随想七]主角与配角——OO思想的多态、接口与委托 Win32中安全的子类化 (1) Emit生成Property C#中类和接口的设计思想 数据库设计 数据库设计指南 使用Rose2003进行数据库建模并导入SQLServer2000的图解详细过程 UML 聚合 的概念 UML视图 静态视图 构件图 包图 初学uml-(1) 类图和关系 UML学习-通过用例分析来确认需求 国际化组件的设计 Web应用的UML建模与.NET框架开发 基于UML的短信计费系统的分析与设计 基于UML的系统分析方法研究 UML的三大“硬伤” 系统约定:用UML描述工作流管理 使用Rose2003进行数据库建模并导入SQLServer2000的图解详细过程 文档 项目开发总结报告 方案设计书 系统规格/需求规格说明/概要设计书范例 “一卡通”信息系统数据库设计初步探讨(原创) 某M1射频卡餐饮收费系统简单数据模型 广告发布统计实现的可行性分析阶段报告 应用软件部2005年年度工作总结 CPMS企业绩效考核管理系统 V1.1 介绍 设计模式 吕震宇设计模式随笔系列 C#设计模式(1) C#设计模式(2) C#设计模式(3) C#设计模式(4)-Simple Factory C#设计模式(5)-Factory Method Pattern C#设计模式(6)-Abstract Factory Pattern C#设计模式(7)-Singleton Pattern C#设计模式(8)-Builder Pattern C#设计模式(9)-Prototype Pattern C#设计模式(10)-Adapter Pattern C#设计模式(11)-Composite Pattern C#设计模式(12)-Decorator Pattern C#设计模式(13)-Proxy Pattern 设计模式(14)-Flyweight Pattern 设计模式(15)-Facade Pattern 设计模式(16)-Bridge Pattern 设计模式(17)-Chain of Responsibility Pattern 设计模式(18)-Command Pattern 设计模式(19)-Observer Pattern 设计模式(20)-Visitor Pattern 设计模式(21)-Template Method Pattern 设计模式(22)-Strategy Pattern 设计模式随笔-蜡笔与毛笔的故事 设计模式随笔-从“有病”说起(工厂模式传) 设计模式随笔-发大米喽 设计模式随笔-锦囊妙计 设计模式随笔-让众口不再难调 设计模式随笔-用奶箱订报纸 设计模式随笔-再论锦囊妙计 也说说“从Adapter模式到Decorator模式” 梦幻.Net设计模式 Dot Net设计模式—桥接模式 如何在实际工作中发现模式 设计模式能够解决的问题 设计模式不能做什么 Dot NET设计模式—抽象工厂 Dot NET设计模式—反射工厂 Dot Net 设计模式—简单工厂 Dot Net设计模式—工厂方法模式 Dot Net设计模式—生成器模式 Dot Net设计模式—原型模式 如何掌握并在实践中自如运用设计模式 Dot Net设计模式—单件模式 Dot Net设计模式—适配器模式 Dot Net设计模式—外观模式 Dot Net设计模式—适配器、桥接与外观三模式之间的关系 .NET反射、委托技术与设计模式 创建型模式之间的比较 用实例解说Dot Net设计模式——装饰模式 New Folder 设计模式原型模式(Prototype)- 面馆里的菜单 程序员的时间管理---做一个高效的程序员 设计模式-工厂模式(手工作坊到工业化的转变 c#实现) 设计模式-简单工厂模式(SimpleFactory-C#) 设计模式学习笔记(一) Terrylee 探索设计模式(五):工厂方法模式(Factory Method) 探索设计模式(1):开篇 探索设计模式(2):深入浅出单件模式(Sigleton Pattern) 探索设计模式(3):抽象工厂模式新解(Abstract Factory) 探索设计模式(4):建造者模式过程图解(Builder Pattern) 探索设计模式(六):原型模式(Prototype Pattern) 探索设计模式(七):创建型模式专题总结(Creational Pattern) 探索设计模式(九):桥接模式(Bridge Pattern) 探索设计模式(八):适配器模式(Adapter Pattern) 探索设计模式(11):组合模式(Composite Pattern) .NET设计模式(13):享元模式(Flyweight Pattern) Head First Design Patterns(深入浅出设计模式 Head First Design Patterns(深入浅出设计模式)-目录 Head First Design Patterns(深入浅出设计模式)-设计模式介绍 你真的了解Ioc与AOP吗? Spring.Net 示例代码分析 乱改:Visitor经典模式改进1 乱评:《c#设计模式》中的“访问者模式” 软件的架构与设计模式之模式的种类 Ioc模式(又称DI:Dependency Injection) 隐藏在.NET中的IoC? 一步一步开发Spring Framework MVC应用程序 CSharp面向对象设计模式纵横谈--Singleton Pattern 听课笔记 CSharp面向对象设计模式纵横谈--面向对象设计模式与原则 听课笔记 最少职责OOD设计手段 OOD的设计手段总结 面向对象设计的六大原则简介 由浅入深学“工厂模式”(1) 由浅入深学“工厂模式”(2) A Taste of AOP from Solving Problems with OOP and Design Patterns (Part I) A Taste of AOP from Solving Problems with OOP and Design Patterns (Part II) A Taste of AOP from Solving Problems with OOP and Design Patterns (Part III) 与大虾对话: 领悟设计模式 Design&Pattern团队《设计模式在软件开发的应用》精华版 由浅入深学“工厂模式”(3) 简话设计模式 观察者模式 (using .net) C#中事件与观察者模式 Role分析模式(一) 角色对象基本概念 Role分析模式(二)角色对象创建和管理 在开发中体验设计模式 重新诠释AOP 侃中介者模式(Mediator) 采用AOP 的观点来 Log 所有方法的调用 MS 的IOC容器(ObjectBuilder)? .Net event vs. observer Pattern DProxy介绍 – 一种高性能轻量级AOP开发组件(.NET 1.1) JavaScript中的Decorator模式 魔法牌里的模式(Bridge) 决策者得选择(Strategy) 通讯兵(Chain of Responsibility) 面向智能体编程(Agent Oriented Programmig, AOP)一些体会 Bridge? 一个GIS二次开发中常用的设计模式 Switch语句,僵化的毒药 策略模式的应用实践 重读GoF Factory Method来实现数据库操作的类 用Factory Method模式扩展MyMSDNTVLibrary 工厂模式和容器模式的探索 反编译 Component重要类,全文解释 - 容器篇 单系统多类型数据源随意切换的c#实现 用C#实现MVC(Model View Control)模式介绍 小议.NET中的对象拷贝 设计模式原则详解 封装变化(一) AOP的纯.Net实现 使用纯.net实现AOP(加入了比较详细的代码说明) 隐身大法,使民无知 设计模式浅析之Singleton 设计模式Top10排行榜 简话设计模式 在我们使用的NET FRAMEWORK类库中发现设计模式(3) 在我们使用的NET FRAMEWORK类库中发现设计模式(2) New Article 模版模式 Template Pattern — 穷人和富人的不同婚恋历程 发掘模式---今天您发掘拉mei? 老师讲的抽象工厂,错了一点点 Singleton + Proxy 模式+AOP Observer模式为何要区分推拉模式 也来谈谈工厂模式 项目管理 需求分析控制 项目经理 七个关于有效沟通的哲理故事 新主管如何生存? 怎样从一名程序员过度到项目经理 论《金瓶梅》与项目管理中人际关系协调 做项目经理的一些思考 怎样从一名程序员过度到项目经理 什么是项目经理 团队建设 软件项目中的人员管理和团队建设 建立“杀手”开发团队 软件开发组的团队精神 如何指导软件开发新手 改变一个状况不佳的项目组 论软件开发中的三种重要角色 如何调动员工的积极性 成功项目团队中应树立的五种意识 管理观点系列:团队管理 现在有多同事工作较懒散,没有一点工作效率,开发出来的东西,Bug又多。如果让你来管理你会怎么做? 人才的识与用 用人之道 高效团队的速成之道 管理人员如何有效应用表扬与批评进行反馈 [项目管理]管理中的人 [团队管理]+[软件人生]从项目计划到保密管理到个人学习与提高的方法 建立团队精神 你实现团队管理了吗? 需求管理 怎么做需求分析 撰写优秀的需求 需求分析的20条法则 从用户接触到完成需求说明书 需求调研步骤和方法 一种界面需求分析方法 细谈软件需求分析过程:提取、抽象、升华 网站项目管理-如何做好需求分析 如何写系统分析书 客户需求何时休? 软件需求管理-用例方法,读书摘要 [理解需求变更之一]说说需求变更的必然 RUP简介 软件开发过程中最重要的是人?还是领导者? 开贴讨论:我观察国内几乎所有公司都有这样或者那样的管理问题,开贴讨论:小团队web项目负责人的工作办法 技术不是全部,归纳和演绎能力也很重要 谈恋爱与IT项目管理 广为流传的一个关于项目管理的通俗讲解 诸子百家与项目管理 之 序 诸子百家与项目管理 之 总述 问答 诸子百家与项目管理 之 周易篇(项目管理的两个基本点) 诸子百家与项目管理 之 孙子兵法篇(项目管理的整体思维) 实战解析----项目目的和范围 项目管理过程中的棘轮效应 任务管理 项目整体管理 项目风险管理 项目采购管理 项目沟通管理 项目人力资源管理 项目成本管理 项目质量管理 项目时间管理 项目范围管理 编码人员和美工的配合问题 心得体会:关于开发效率和项目周期的问题 紧急项目处理方法 做项目的一些体会(之一)_软件开发过程中我们应当具有的能力 团队技能之一——分析问题 价值高于一切-企业软件开发谈 项目管理之我见(原创) 项目开发管理经验交流 软件实例开发手记(自序)-为保证文章完整性,谢绝对某篇而非全部手记的转载 紧急项目处理方法 浅谈项目管理中的职责权 - [原创] 由一个虚构的例子谈谈中小型研发型项目的技术管理及成本控制(全文) 优化IT企业的基础架构 一个研发经理的项目日记 .net敏捷开发及常用工具 关于项目管理和项目计划制定的对话 微软资深经理人的项目管理经验 WEB项目开发 MyMsn动态Resize页框架的布局详解 性能,安全,集成才是web之道 重构之美-走在Web标准化设计的路上[深入结构:理解h系列的不合理。] 重构之美-走在Web标准化设计的路上[振臂一呼:Css, Stop! ] 重构之美-走在Web标准化设计的路上[复杂表单]3 2 Update 重构之美-走在Web标准化设计的路上[唠叨先] 重构之美-迎接Web标准化设计的来临[总结一:网页设计回归?] 重构之美-走在Web标准化设计的路上[对HTML/XHTML/XML/XSL的一些认识] 雅虎网站项目工作流程 微软资深经理人的网站项目管理经验 其它 软件工程 一个测试的重构 RUP 核心概念 配置管理的概念 RUP && MSF 特点 构建面向对象的应用软件系统框架 构建面向对象的应用软件系统框架 目录 构建面向对象的应用软件系统框架 第1章 构建面向对象的应用软件系统框架 第2章 第3章 数据和对象 第4章 O/R Mapping的一般做法 第5章 设计一个O/R Mapping框架 第6章 面向方面编程 第7章 接口 第8章 事务处理 第9章 性能优化 第10章 界面层的功能划分 第11章 界面设计模式 第12章 动态代码生成和编译技术 第13章 远程过程访问的客户端整合 第14章 智能客户端 第15章 简述 Effective Coding - Readability 单元测试时的一些最佳实践 Best free tools/frameworks/libraries I use 统一界面设计 十二种实践方法与我的XP心得 使用CVS做.NET项目 在asp.net页面上得到Castle容器的实例 当软件开发的反思 面向对象设计,ORM,NHIBERNATE杂谈(有感) 投标方案应该怎么写? CMM/CMMI将带我们走向何方——一个CMM从业人员的反思 对一个排序程序的不断重构 FxCop 设计规则 敏捷实践12 条原则 《敏捷软件开发》读书笔记 (1) 《敏捷软件开发》读书笔记 (2) -- 设计原则 《重构》 读书笔记 (1) 企业应用之领域模型 我的.net项目经验(一)。 也谈 SOA 重新诠释SOA 登山的程序员(极限与敏捷之一) 敏捷的总设计师(极限与敏捷之二) 实战解析--项目的主要技术储备 产品升级策略 读《DTS分析模型、设计模型》有感 软件开发核心工作流程 新产品研发 分析设计过程.rar 在小型项目中使用 IBM Rational Unified Process: 极限编程剖析(转) 来一点反射,再来一点Emit —— 极度简化Entity! 软件整合--硬件整合--平台整合 用自定义KeyValueCollection类代替Dictionary/Hastable,改善简化后的Entity性能 Java剑 VS .NET刀 -- 东山再起(论模式)(二)【推荐】 基于构件技术的需求管理过程-框架需求调研 PSP课程(一): PSP简介 我对系统重构的理解 重构---Who are you?! 单元测试应该测什么,不应该测什么? AccEAP架构介绍(1)---实体的设计 我的单元测试认识之路 中小型MIS开发之我见(一)---开发阶段 中小型MIS开发之我见(二)---具体实施(上) 中小型MIS开发之我见(二)---具体实施(下) 团队开发框架(Developement Structure for Team),内容列表及整理计划 风继续吹----对一些ORM框架的使用心得(2) 冷眼程序人生----对一些ORM框架的使用心得 读书笔记]-道法自然之需求分析 个人对软件开发的思考 网络应用 一个Udp信息收发静态类! [修改]脚本判断网站是否能打开 IIS防止文件下载完全手册(非更改文件名法) 在.NET中利用XMLHTTP下载文件 开发 .NET 下的 FTP 客户端组件 如何不让没有登录的用户下载的问题 文件下载时如何隐藏实际地址? ASP.NET 多文件上传 .net 中发mail到hotmail中乱码问题的解决 郁闷的OpenPOP的MIME Parser Asp.net(c#)实现多线程断点续传 关于 OpenSmtp 邮件标题过后出现乱码问题的解决 支付宝Payto接口的c#.net实现 文件操作 发布一个Asp.Net文件夹复制类 关于File的一些例子 文件操作工具类 FileUtility 大文件上传之异常处理(原创) 文件 在线压缩 技术 ASP.NET在线压缩与在线解压缩 c#文件操作(二) 在ASP.NET中跟踪和恢复大文件下载 Response.BinaryWrite()下载时文件名的问题. Windows Workflow Foundation之旅(二)——指南1(创建顺序工作流) DotNet 序列化学习笔记 一个上传的类 系统控制 WMI类--所有可用的WMI的类封装 用ActiveX控件和JavaScript脚本实现基于Web的票据套打(源码下载) 运用API函数获取系统信息 通过ASP.NET页面重启服务器 开源:VS.NET打印思想与2003/5DataGrid、DataGridView及二维数据如ListView等终极打印实现(全部源码) 关于如何打印ListView的解决方法 修改IIS目录的Asp.Net版本 如何获取客户IE统计信息[代码] 图像多媒体 js图形报表 一个可设置背景图片的验证码图片的生成方法 图片翻页幻灯效果 图片渐变轮换效果 讨论一下flash.ocx(8.0版本的)与.net结合的编程 动态生成缩略图 SharpMap介绍及源码分析 利用Javascript 结合 VML 生成三维报表(饼图) 技巧与总结 代码阅读总结(个人总结开发小技巧) DotNet精美书籍大检阅 asp.net的页面代码组织模式 金鼎俱乐部项目总结 总结一下散乱的开发点滴(3) (高手勿入) 说的都是概念——有关编程范式 组织一些开源项目 VS.NET操作技巧 Visual SourceSafe VSS信息的读取的操作 安装程序 安装程序自动安装数据库 程序安装时检查是否已经安装.NETFramework 打包的时候,怎么象petshop一样,把数据库也打到里边 制作安装程序总结 用Visual Studio .Net 2003制作安装程序时轻松实现将自己的程序添加到系统的鼠标右键菜单 .net打包自动安装数据库 用自删除dll实现应用程序的安装/卸载代码 .NET打包自动安装数据库 调试常见问题 IE安装了flash插件还不能显示swf动画的问题 让人哭笑不得的“Unable to load one or more of the types in the assembly”问题的解决! 关于异常处理的一点感受 项目调试时候,出现其中用到的一个组件“访问被拒绝”的解决方法。 对于引用的控件被拒绝访问的解决办法的补充(续) 对于引用的控件被拒绝访问的解决办法的补充(续++)++ 对于引用的控件被拒绝访问的解决办法的补充(续++) 使用Visual Studio.net调试javascript最方便的方法 在Apache上调试Asp.net 1.1/2.0代码 VS.NET 2005 vs.net 2005 中自定义模版项 自己动手打造Visual Studio 2005 Team Suite 正式汉化版 用Visual Studio 2005创建宏代码生成器 Visual Studio 2005 Team Foundation Server Beta3 安装手记 Visual Studio 2005 Team System的BUG? 对vs2005生成dll文件的一点疑惑 开发VS2005下ComboBoxTreeView(下拉列表框弹出树) 与ToolStripComboBoxTreeView(下拉列表框工具条弹出树) Visual Studio 2005中编译调试新功能 使用 Visual Studio 2005 Team System 进行单元测试并生成用于 Unit Test Framework 的源代码 在VS.NET2005中使用java代码段以及SOL文件格式的解析 ClubWEBSite starter kit二次开发及Vs2005中ObjectDataSource控件的应用小记 Visual Studio 2005 RTM的奇怪问题 Team Foundation Server Beta3 安装指南 VS2005中通过code snippet定制类模板 C#2.0 Singleton 的实现 Dataset+TableAdapter _.net最终数据访问类出现? 我的心血显然被藐视了 目发现的 asp.net数据绑定的几个BUG(不定期连载) 使用GDI+在VS2005下开发基于DataGridView的财务显示单元格控件 目发现的VS2005 asp.net 数据绑定bug (二) -关于ObjectDatasource 和TableAdapter Use Whidbey Beta2 to target .NET Runtime 1.1 Targetting 1.1 .NET Framework with MSBuild 安装TFS vs.net 2005中web.config智能感知丢失时 VS2005中用Code Snippets提高开发效率 VS2005运行速度优化心得 vs2005 的WebSite 的开发方式的替代Visual Studio Web Application Projects VS2005如何进行单元测试. 善用免费的Code Snippet Libraries加快你的开发速度 Code Snippet Libraries压缩下载包 Visual Studio 2005 Web Application项目RC发布 Visual Studio 2005 Web Application Projects 项目Cool的地方 VS2005将支持的两种WEB编程模型的比较 VS.NET 工具 CodeSmith 我的用CodeSmith生成的业务对象 CodeSmith基础(一) CodeSmith基础(二) CodeSmith基础(三) CodeSmith基础(四) CodeSmith基础(五) CodeSmith基础(六) CodeSmith基础(七) CodeSmith基础(八) CodeSmith应用(一) CodeSmith应用(二) CodeSmith应用(三) CodeSmith应用(四):实现选择路径对话框 CodeSmith-Terrylee CodeSmith实用技巧(一):使用StringCollection 数据库字段属性配置工具界面[用于代码生成] Sharpdevelop2.0预览版放出来了 对nunit很失望 Resharper的快捷键 ReSharper 利用Together For VS.NET检查所编写的代码是否够规范 如何用CodeSmith减少代码重复编写 NET 的Refletion的初步了解 VS2005 Add-in:CSS Properties Window 每个开发人员现在应该下载的十种必备工具 体验ReSharper V1.0 for VS.Net 2003 - Part I 用DNS、IIS实现Web项目团队协作开发! 创建自定义的Visual Studio项模板 Microsoft Windows Workflow Foundation 入门:开发人员演练 将asp.net1.1的应用程序升级到asp.net2.0的一点心得 自动填写版权信息 .Net1.x转换为.Net 2.0要注意的几个问题 服务器同时存在1.1和2.0程序注意事项 使用@Page指令的Src 属性 简化对老版本的 asp.net程序的维护 常见的 Web 项目转换问题及解决方案 将 Web 项目从 Visual Studio .Net 2002/2003 转换到 Visual Studio 2005 的分步指南 常见的 ASP.NET 2.0 转换问题和解决方案 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误 安装vsts:如何卸载SQL Server 2005 其他新技术 反射 初识.net反射技术 .NET反射、委托技术与设计模式 .net反射技术的应用—如何调用Java的COM接口 灵活正确的实现.NET插件机制 C#中使用反射的性能分析 论.NET反射、委托技术与设计模式关系 Ajax 用Ajax技术让IE Web Control Tree View实现数据量读取 AJAX设计模式 之 怎样构建一个可刷新的无刷新应用 AJAX设计模式实践 之 可刷新Ajax应用范例+Framework 在ASP.NET中实现AJAX Ajax.Net的onLoading及aspx页面的默认名字空间及ajaxpro的google组怎么没有一个chinese? CuteEditor5.0的安装及它与Ajax.net配合无刷新操作数据库! 使用简单的Ajax Framework -MagicAjax.NET 剖析MagicAjax 利用AJAX技术开发应用程序实战 基于Ajax的五子棋演示 AJAX页面XMLHTTP对象生成及下一步技术研究 到了该讨论XMLHTTP在Ajax中作用的时候... Ajax,纠正错误,又向一小步 Ajax, 想得更实际一些 Ajax, 使用PostBack响应模型和Web控件资源, 让服务器返回更少的数据 几句话介绍MagicAjax 使用MagicAjax 实现无刷新Webparts AJAX编写用户注册实例及技术小结 Web 2.0中AJAX技术应用详解 一个要钱的ajax框架zumipage 网站的推广之痛-使用AJAX和.NET网站的朋友注意了 让MagicAjax支持中文! 阿特拉斯神(二) AJAX急速狂飙:开发www.99scj.com体验(1) ASP.NET 调味品:AJAX 一套使用简单的Ajax服务器控件-Anthem.NET Introduction to Anthem.NET 三种Ajax框架使用比较 Ajax基本原理讲解 【AjaxPro实现机制浅析二】*.ashx文件是怎么来的? 利用Ajax与数据实现无刷新绑定 应用Ajax.net在Asp.net中实现无aspx文件应用 Atlas 用Atlas来实现一个基于AJAX的无刷新Chatroom Atlas Table Layout Template 学习Atlas是发现的几个小问题 Atlas笔记1:介绍和调用WebService的方法 Atlas是什么? Atlas 实现机制浅析 [1] Atlas 实现机制浅析 [3] 使用ASP.NET Atlas编写显示真实进度的ProgressBar(进度条)控件 Atlas应用程序调试技巧 在Atlas服务器端实现中推荐使用Web Service而不是Page Method Atlas揭秘 —— 绑定(Binding) 在ASP.NET Atlas中创建自定义的Transformer 在ASP.NET Atlas中创建自定义的Validator 使用ASP.NET Atlas ItemView控件显示集合中的单个数据 使用ASP.NET Atlas ListView控件显示列表数据 调试Atlas客户端JavaScript脚本 在ASP.NET Atlas中创建自定义的Behavior 使用ASP.NET Atlas SortBehavior实现客户端排序 在Atlas中实现检测postback progress的状态的方法 使用ASP.NET Atlas XSLTView控件用XSLT修饰并显示XML数据 Remoting 一步一步学Remoting之一:从简单开始 初识用.NET Remoting来开发分布式应用 使用.NET Remoting开发分布式应用——配置文件篇 基于消息与.Net Remoting的分布式处理架构 使用.NET Remoting开发分布式应用——基于租约的生存期 Remoting多个信道(Chennel)的注册问题 Remoting中的线程与网络通信内幕初探 Remoting Event 远程事件 Remoting Discussion(二) Remoting Discussion(三) 移动开发 在PPC上用时间做唯一编号遇到的问题及其解决方法 正确处理 SqlCeException 的方法 通过ActiveSync使你的Windows Mobile Emulator连接到Internet Pocket PC 2003编程环境 Windows Mobile开发环境搭建指南 短信任务源程序分享[.NET CF C#] 循序渐进:使用 Visual Studio 2005 为基于 Windows Mobile 的设备生成 .NET Compact Framework 应用程序 是不是.net compact framework的Bug呢? 窗体切换中的小技巧 Web 2.0 WEB2.0商业模式才刚开始 用Blog和Wiki搭建IT团队的知识库 论web2.0的定义及web2.0盈利的实现方式 MagicAjax-NoStore,Session,Cache模式的区别 Wiki的介绍 wiki、Blog与项目知识管理 wiki的来龙去脉与企业应用 2006年 Web 2.0 将面临的10个问题 web 2.0 精彩语录 创新的媒介:Web 2.0三大营销变革 2005年Web 2.0领域涌现的11大高质量软件 学习冲电 <> Go back什么是Web 2.0? Web 2.0时代,你属于哪一份子? 全面精通Web 2.0,做互联网潮头人 项目Wiki的选择和配置 2005年 Web2.0 带动的11大软件 最近的asp.net技术demo 通用异常处理框架 在C#中调用WINCE连接PC的程序 GPS定位信息的接收 PDA/GPS检测报告 CnForums和已有系统的整合方案 Community Server技术分析——CS是如何将三个项目整合到一起的 Microsoft.mshtml到底是什么? BI与CRM深入行业应用 纯粹B/S方式实现InfoPath的设计和运行时--Web Builder WebBuilder 界面一览 大话 .NET/MONO 跨平台应用 移植 ASP.net 项目到 Mono 的问题报告 激动的一天 MONO - .NET跨平台之亲身经历(一) 使用Updater Application Block实现自动更新例子 Component/Service Oriented Software System Development Thinking Smart Client Case Study Source Code Download from MSDN China 初探YAML 在将WEBPART打包成*.CAB包和*.MSI安装包后,竟然无法将其安装到指定的WSS网站 Microsoft Windows Workflow Foundation 入门:开发人员演练 如何让ClickOnce进行手动更新(含代码) WEB BUILDER中的动态页面生成 flash与asp.net通信(LoadVars类) EsbAOP应用--异常关闭器 EnterpriseServerBase的AOP--EsbAOP实现 [WPF]WPF中如何实现数据与表示分离。(一) —— XAML 翻译:微软是如何输掉API之战(上) 微软是如何输掉API之战(下) Log4Net五步走 Agile Framework功能介绍(1):自动事件连接 基于构件技术的软件工程 - Small Team Practice小型团队项目实践标准 RIA全程追踪-引子 Boo简介及无关的一些牢骚 企业应用之领域模型 企业应用之数据持久化方案 通过Spring.net来使用XCodeFactory生成的数据层! 关于SNS规则引擎的一点想法 Biztalk2004 Decoder的二次开发----春田花花幼稚园的信息化项目 虚拟社会,做尽天下业务(集思广义,以求大同) ORM新实现——Dali 使用Microsoft Systems Management Server 2.0 进行补丁管理 CNN评出25个典型的下一代互联网公司 SQL Server Report Services 的RS数据库移植到另外一台服务器,报“rsReportServerNotActivated”错误 .NET和JAVA的跨平台,我们很期望.但是容易吗 LoadRunner 架构概览 关于Flex、Jrun、ColdFusion、IIS、ASP.Net结合使用的误区!(只说Flex1.5版本) Windows Communication Foundation入门(Part One) office 操作 ADO.NET(OleDb)读取Excel表格时的一个BUG Office with .Net 系列之 ――― 在自己的程序中宿主Office Office with .Net (二) ――― 使用.Net访问Office编程接口 Office with .Net(二)之外传―――“彻底干净的”关闭Office程序 我写的Asp.net操作Excel的一个类库ExcelHelper(源码下载) C#操作Excel,套用模板并对数据进行分页 关于ASP.NET中调用Excel组件不能结束进程的解决方法 用完Excel组件后 如何彻底关闭Excel进程 一个Excel exporter的组件 web 下实现文档的可浏览但不可保存 Excel开发:简化工作表中选定区域的操作 开源代码系列之Office文档读写(Excel/Word) 将Exce嵌入你的.Net程序 实例与经典源码 .NET Pet Shop 4 .NET Pet Shop 4: Migrating an ASP.NET 1.1 Application to 2.0 NET Pet Shop 4 .NET Pet Shop 4 关于练习项目的一些背景 基于.NET 2.0的Petshop4正式推出了 PetShop的系统架构设计 Petshop 4 学习 Agile Framework 介绍Agile Framework Agile Framework架构图 利用db4o做中间层数据缓存 关于数据层设计的取舍思考 基于SOA思想的架构设计 框架设计之Castle&CompositeUI容器融合 架构设计之Smart Client 架构设计之离线处理 DotNetNuke DNN 数据访问策略 【译】 快速正确的制作DNN模块数据库安装脚本 DotNetNuke开始支持ASP.NET2.0 DotNetNuke从入门到进阶(1)怎样写自己的模块 DotNetNuke 代码文档 翻译DNN-Documentation-readme.txt DotNetNuke:如何创建自己的模块(FlashPlayer Module) [DNN模块开发]让模块支持“导入”“导出”功能 [DNN模块开发]DNN模块的层次划分 [DNN模块开发]模块的文件结构及命名方法 [DNN模块开发]如何写模块数据库安装脚本 建立单独的解决方案来开发DNN模块 [DNN模块开发]快速制作DNN模块安装包 [DNN模块开发]快速正确的制作DNN模块数据库安装脚本 [DNN扩展]将Lion.Web.WebHtmlEditor作为DNN的富文本编辑器(初步实现) [DNN扩展]LionHtmlEditorProvider(v1.0.1) [DNN扩展]LionHtmlEditorProvider(v1.0.2) 最后更新:2005-7-25 [DNN模块开发]如何写dnn文件 [DNN模块开发]分类链接模块终于大功告成了 [DNN扩展]LionHtmlEditorProvider(v1.0.3) [DNN模块开发]分类链接模块V1.1 [DNN模块开发]增强型DNN在线调查模块 [DNN学习所得]如何防止页面中的敏感信息被提取 如何修改DotNetNuke(DNN)中服务条款和隐私说明 利用反射工厂模式支持多数据库访问 DNN中搜索引擎原理——如何获取SearchItem DNN中搜索引擎原理——数据库分析篇 [DNN通用控件]TextEditor [DNN学习所得]SolpartMenu一个相当不错的下拉菜单控件 [DNN功能]列表管理添加中国的省份选择下拉框 [DNN学习所得]CBO——简化从数据库读取数据并实例化对象的有效方法 刚开始学习DNN的一点小经验(二) 全新安装dnn3.1.0 DNN安装模板(DotNetNuke.install) [DNN学习所得]让IE也能实现解压缩功能(提供演示源码下载) DNN核心用户控件——实现页面灵活布局的第一步 DNN的数据访问方式——合理运用模式,提高数据访问的灵活性(有修正) 刚开始学习DNN的一点小经验(一) [DNN学习所得]HttpModule到底是个什么东西 DotNetNuke3研究报告一(安装) 初识DotNetNuke(DNN) 关于DotNetNuke(DNN)的语言问题 DotNetNuke3研究报告二(数据访问) [DNN学习所得]HttpModule到底是个什么东西 DNN文件夹说明 [DNN通用控件]DualListControl介绍 DNN3.2.2安装说明 [DNN 3.2.2] DNN开发中的一些细节(2) DNN开发中的一些细节(1) Flash+xml 在 Dnn系统开发中的应用 DNN开发中的一些细节(3) 开源项目 开源CMS Alfresco 1.0 发布 ArgoUML -- 开源UML 建模工具 应用IBatisNet+Castle进行项目的开发 再论IBatisNet + Castle进行项目的开发 NHibernate VS IbatisNet IBatisNet 之 自动生成主关键字 细节决定成败:一个公共类库 BugTracker.NET 汉化手札 ORM开题篇-Gentle.NET之牛刀小试 使用NHIBERNATE写DAL层的流程和牢骚 Mono 开发 (使用.NET技术的你,绝对不能忽略Mono) .NET开源项目链接 MonoRail - 期准备 MonoRail - 简介 经典案例介绍 广州市工商局商标管理软件 Duwamish 学习Duwamish7的MSDN说明及相关技术策略 Duwamish7学习笔记(七) Duwamish7学习笔记(六) Duwamish7学习笔记(五) Duwamish7学习笔记(四) Duwamish7学习笔记(三) Duwamish7学习笔记(二) Duwamish7学习笔记(-) NHibernate 使用NHibernateContrib中的Nullables NHibernate文档翻译进度&问题收集(持续更新) NHibernate文档翻译 第3章 持久化类(Persistent Classes) NHibernate文档翻译 第5章 集合类(Collections)映射 NHibernate文档翻译 第6章 关联映射 NHibernate文档翻译 第7章 示例: Parent/Child NHibernate 1.0.1 发布了 NHibernate文档翻译完成 NHibernate文档翻译 第8章 NHibernate缓存(NHibernate.Caches) NHibernate文档翻译 第9章 使用AttributesNHibernate.Mapping.Attributes NHibernate文档翻译 第10章 NHibernate.Tool.hbm2net DDL的NHibernate文档 1.快速起步 NHibernate中DateTime,int,bool空值的处理方法 使用NHibernate进行数据持久层开发的最佳实践 基于NHibernate的三层结构应用程序开发初步 NHibernate.Helper Project NHibernate学习手记(1) - 对象的简单CRUD操作 NHibernate学习手记(6) - 实现one2many/many2one的映射 NHibernate快速指南 NHibernate之1——为什么不用DataSet? NHibernate文档翻译 第1章 体系结构 NHibernate文档翻译 第2章 ISessionFactory配置 NHibernate文档翻译 第4章 O/R Mapping基础 由为什么要学习NHibernate说开去 NHibernate 使用手迹(1st) NHibernate 使用手迹(2nd) NHibernate使用手迹(3rd) 发布:偶写的NHibernate代码生成器 面向对象设计,ORM,NHIBERNATE杂谈(有感) Snake.Net Snake.Net 框架中的ORM(一) (Version 0.2 Beta) Snake.Net 框架中的ORM(二) (Version 0.2 Beta) Snake.Net 框架中的ORM(三) (Version 0.2 Beta) Snake.Net网络通讯模块 序 Snake.Net网络通讯模块 - SMTP(一) Snake.Net网络通讯模块 - POP3(二) Snake.Net网络通讯模块 - IMAP4(三) Snake.Net网络通讯模块 - FTP(四) Snake.Net 框架中的ORM(四) (Version 0.2 Beta) Snake.Net 框架中的ORM(五) (Version 0.2 Beta) QPG平台 编写容易被维护的代码(1) QPG--基本用法介绍 技术篇(1)--QPG容器的基本用法 技术篇(2)--QPG容器的高级用法 技术篇(3)--QPG界面分解方法介绍 技术篇(4)--基于QPG容器的服务扩展 技术篇(5)--QPG数据处理方法 技术篇(6)--大话AOP 实践篇(1)--QPG之“打狗棍法” 思想篇(3)—IT运用模式的轮回 思想篇(2)--归纳和演绎能力也很重要 思想篇(1)--企业需要什么样的人才? 思想篇(完)----跟往事干杯 思想篇(4)---- 实战解析(完)----总结 Enterprise Library Enterprise Library2.0(1):Data Access Application Block学习 Enterprise Library2.0(2):Logging Application Block学习 Enterprise Library2.0中加密数据库连接字符串 Enterprise Library——企业库配置管理应用程序块 Enterprise Library——企业库缓存应用程序块 Enterprise Library Step By Step系列(一):配置应用程序块——入门篇 Enterprise Library Step By Step系列(二):配置应用程序块——进阶篇 Enterprise Library Step By Step系列(三):数据访问程序块——入门篇 Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 Enterprise Library Step By Step系列(五):安全应用程序块——入门篇 Enterprise Library Step By Step系列(六):安全应用程序块——进阶篇 Enterprise Library Step By Step系列(七):日志和监测应用程序块——入门篇 terprise Library Step By Step系列(八):日志和监测应用程序块——进阶篇 Enterprise Library Step By Step系列(九):缓冲应用程序块——入门篇 Enterprise Library Step By Step系列(十):缓冲应用程序块——进阶篇 Enterprise Library Step By Step系列(十一):异常处理应用程序块——入门篇 Enterprise Library Step By Step系列(十二):异常处理应用程序块——进阶篇 Enterprise Library Step By Step系列(十三):加密应用程序块——入门篇 Enterprise Library Step By Step系列(十四):创建基于消息队列(MSMQ)的异步日志 Enterprise Library Step By Step系列(十五):配置应用程序块——设计篇 Enterprise Library Step By Step系列(十六):使用AppSetting Application Block Composite UI Application Block 学习笔记之Commands Composite UI Application Block学习笔记之Event Broker 使用Updater Application Block实现自动更新例子 使用企业程序库的两点体会 Composite UI Application Block学习笔记之Smart Part 关于在服务器端使用Microsoft Exception Management Application Block Logging application block of Enterprise Library 2.0 TimeStamp of the Logging Application Block in EntLib 2.0 对 Updater Application Block v2的表面行为分析及问题 (一) HTTP Downloader for Updater Application Block 2 ObjectBuilder内功心法之中国特色 一个从网页中提取天气预报信息的程序(附源码) Ilungasoft Framework: 使用视图处理继承关系、Tree结构实体关系映射示例[源码] DataQuicker2快速入门-----存储过程篇 一个ASP.NET2.0的小项目-BLOG Ilungasoft Framework中处理有关联关系的实体 Community Server2.0专注细节一 邮件提醒按钮实现(上) DataQuicker(ORM)中的缓存机制 数据框架DataQuicker2第一个版本开源下载. SVG + Javascript + ASP.NET + WebService开发楼宇管理系统 - 杂记3(完) 新的数据框架DataQuicker2 Walk through Message----春田花花幼稚园的信息化项目(II) SVG + Javascript + ASP.NET + WebSe

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧