文件夹_文件夹权限 - CSDN
  • 获取根目录文件夹下所有文件有两种方式:递归和非递归 一、递归获取文件夹中文件的方法 /** * 获取根目录下所有的文件集合 * @param file * @param fileList * @return */ public static List<File> ...

    获取根目录文件夹下所有文件有两种方式:递归和非递归

    一、递归获取文件夹中文件的方法

    /**
         * 获取根目录下所有的文件集合
         * @param file
         * @param fileList
         * @return
         */
        public static List<File> getFileNameList(File file,List<File> fileList){
            if (file.isDirectory()) {//判断是否文件夹
                File[] files = file.listFiles();
                if(files.length > 0){
                    for(File f : files){
                        if (f.isFile()){//文件
                            fileList.add(f);
                        }else{//文件夹
                            getFileNameList(f,fileList);
                        }
                    }
                }
            }
            return fileList;
        }

    二、非递归获取文件夹中文件的方式

    /**
         * 非递归遍历
         * @param file
         * @return
         */
        public static LinkedList<File> GetDirectory(String path) {
            File file = new File(path);
            LinkedList<File> Dirlist = new LinkedList<File>(); // 保存待遍历文件夹的列表
            LinkedList<File> fileList = new LinkedList<File>();
            GetOneDir(file, Dirlist, fileList);// 调用遍历文件夹根目录文件的方法
            File tmp;
            while (!Dirlist.isEmpty()) {
                tmp = (File) Dirlist.removeFirst();// 从文件夹列表中删除第一个文件夹,并返回该文件夹赋给tmp变量
                // 遍历这个文件夹下的所有文件,并把
                GetOneDir(tmp, Dirlist, fileList);
    
            }
            return fileList;
        }
    
        // 遍历指定文件夹根目录下的文件
        private static void GetOneDir(File file, LinkedList<File> Dirlist,
                                      LinkedList<File> fileList) {
            // 每个文件夹遍历都会调用该方法
            File[] files = file.listFiles();
    
            if (files == null || files.length == 0) {
                return;
            }
            for (File f : files) {
                if (f.isDirectory()) {
                    Dirlist.add(f);
                } else {
                    // 这里列出当前文件夹根目录下的所有文件,并添加到fileList列表中
                    fileList.add(f);
                }
            }
        }

    以上两种方式都可以获取多层文件夹下文件集合。

    展开全文
  • python 文件、文件夹详细操作

    千次阅读 2019-01-12 20:39:16
    目录   一、文件操作 1、文件操作流程 ...4、工作目录及创建文件夹操作 5、删除文件夹、文件 6、重命名文件夹/文件 7、复制移动文件夹/文件   不要努力成为一个成功者,要努力成为一个有价值...

    目录

     

    一、文件操作

    1、文件操作流程

    2、文件打开模式

    3、文件循环

    4、文件的修改

    5、flush方法

    6、whit语句

    7、其它操作

    二、文件夹 /

    1、提要

    2、判断路径或文件

    3、路径名、文件名分割

    4、工作目录及创建文件夹操作

    5、删除文件夹、文件

    6、重命名文件夹/文件

    7、复制移动文件夹/文件

     

    不要努力成为一个成功者,要努力成为一个有价值的人。


    一、文件操作

    1、文件操作流程

    1.打开文件,得到文件句柄并赋值给一个变量

    2.通过文件句柄对文件进行操作

    3.关闭文件

    2、文件打开模式

    f = open("file_test","r",encoding = "utf-8")    #打开文件,“读模式”,只能读,得到文件句柄并赋值给一个变量
    print(f.read())                     #读文件所有内容,读完之后文件光标跳到最后,文件大时慎用
    f.close()
    
    f1 = open("file_test","w",encoding="utf-8")     #写模式,会新建一个file_test文件,再往里写入
    f1.write("-------------")
    f1.close()
    
    f2 = open("file_test","a",encoding="utf-8")     #追加模式,在原文件内容最后追加,无原文件则新建
    f2.write("-------------")
    f2.close()
    
    f3  = open("file_test","r+",encoding="utf-8")    #读写模式,写在原文件内容最后追加,无原文件则新建
    print(f3.readline())                  #按行读
    print(f3.readline())
    print(f3.readline())                  #打印前三行,这个时候光标移动到第三行位置
    print(f3.tell())                    #打印光标位置
    f3.write("--------------")               #但是写入还是文件内容最后写入
    f3.close()
    
    f4  = open("file_test","w+",encoding="utf-8")    #写读模式,,只要是“写在前”都会建一个新文件,在写入
    f4.write("----------------------\n")
    f4.write("----------------------\n")
    f4.write("----------------------\n")
    f4.seek(10)                       #光标移动到10的位置
    f4.write("test4")                    #再写入会将原内容覆盖
    f4.seek(0)                        #将光标移动到开头的位置
    print(f4.read())
    f4.close()
    #输出
    #----------ni hao -----
    #----------------------
    #----------------------
    
    f5  = open("file_test","a+",encoding="utf-8")    #追加读模式,在原文件内容最后追加,无原文件新建
    f5.write("----------------------\n")
    f5.write("----------------------\n")
    f5.write("----------------------\n")
    f5.seek(10)                       #光标移动到10的位置
    f5.write("test5")                    #再写入会在文件内容最后写入
    f5.seek(0)
    print(f5.read())
    f5.close()
    
    f6  = open("file_test","rb")                 #以二进制文件格式读这个文件
    print(f6.readline())
    print(f6.readline())
    print(f6.readline())
    f6.close()
    
    f7  = open("file_test","ab")                 #以二进制文件格式追加这个文件
    f7.write("-------------------\n".encode())       #encode 将str字符转换为bytes
    f7.write("-------------------\n".encode())
    f7.write("-------------------\n".encode())
    f7.close()
    
    f8  = open("file_test","wb")                 #以二进制文件格式写这个文件
    f8.write("-------------------\n".encode())       #encode 将str字符转换为bytes
    f8.write("-------------------\n".encode())
    f8.write("-------------------\n".encode())
    f8.close()
    
    
    #注:还有rU或r+U模式,"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)

    3、文件循环

    #按行循环,并且将第五行替换
    f = open("file_test","r",encoding="utf-8")
    count = 0
    for line in f:
        count += 1
        if count == 5:
            print("----分割线----")
            continue
        print(line.strip())                           #strip是去除行首行尾的空格符和换行符
    f.close()
    
    #f.readlines()                                    #切记用f.readlines是先将文件转换为列表,如果文件太大时对内存消耗太大

    4、文件的修改

    #打开一个文件,修改完了写到一个新文件
    f = open("file_test","r",encoding="utf-8")
    f_new = open("file_new","w",encoding="utf-8")
    for line in f:                               #按行取出,每行都是一串字符串
        if "fengxiaoli" in line:
            line = line.replace("fengxiaoli","FENGXIAOLI")       #对字符串进行操作,J
        f_new.write(line)
    f.close()
    f_new.close()

    5、flush方法

    f = open("file_test","w",encoding="utf-8")
    f.write("hello\n")
    f.write("hello\n")
    f.write("hello\n")
    f.flush()       #当往文件写内容的时候,会有一个缓存,达到一个时间,一次往文件写入。如果这时候断电可能内容并没有写入成功,flush刷新会立即执行

    6、whit语句

    #with语句作用,为了避免打开文件后忘记关闭
    
    with open("file_test","r",encoding="utf-8") as f:          #类似于f = open("file_test","r",encoding="utf-8")
    
    with open("file_test","r",encoding="utf-8") as f, \        #还可以同时打开多个文件
            open("file_test2","r",encoding="utf-8") as f2:
    

    7、其它操作

    f = open("file_test","r",encoding="utf-8")
    print(f.tell())              #打印光标位置,按字符计数
    print(f.readline())          #按行读
    print(f.read(10))            #按字符读
    print(f.tell())
    f.seek(0)                   #把光标回到开头
    f.seek(12)                  #把光标移动到12个字符的位置
    print(f.readline())
    print(f.encoding)           #打印文件编码
    
    print(f.isatty())           #判断文件是否是终端设备,返回Ture or false
    print(f.seekable())         #判断是否能移动文件光标,返回Ture or false
    print(f.readable())         #判断文件是否可读
    print(f.writable())         #判断文件是否可写
    
    
    # f  = open("file_test","a",encoding="utf-8")
    # f.truncate(12)      #从头开始截取多少字符

    二、文件夹 /

               文件

    1、提要

    我们经常会与文件和目录打交道,对于这些操作,python可以使用 os 及 shutill 模块,其中包含了很多操作文件和目录的函数。

    os 可以执行简单的文件夹及文件操作,引入用  import os,可用  help(os)  或是  dir(os)  查看其用法。注意有些函数在os模块中,有的是在os.path模块中。

    shutil 模块提供了大量的文件的高级操作,特别针对文件拷贝和删除。主要功能为目录和文件操作以及压缩操作。须引入 import shutil  ,具体 help。本文仅介绍移动、复制及删除。

     

    可先在 D:\ 下创建文件夹 Python_os , 再在其下创建文件夹 os, 再在其下创建 test.txt;之后的示例会在该文件夹下操作

    2、判断路径或文件

           os.path.isabs(...)      # 判断是否绝对路径
    
        os.path.exists(...)     # 判断是否真实存在
    
        os.path.isdir(...)       # 判断是否是个目录
    
        os.path.isfile(...)       # 判断是否是个文件

    注意:   把两个路径合成一个时,不要直接拼字符串,而要通过 os.path.join(part1,part2) 函数,这样可以正确处理不同操作系统的路径分隔符。在Linux/Unix/Mac下,os.path.join()返回这样的字符串:    part1/part2,而Windows下会返回这样的字符串:  part1\part2

    import os
    import shutil
    
    file_dir = "D:\\Python_os\\os"                          # 注意 \\ ;windows 下是这么表示的;Linux 和 Mac 是 /
    file_name = "test.txt"
    file_abs = os.path.join(file_dir, file_name)            # os.path.join(...) 表示路径链接
    
    
    '''判断路径或文件'''
    print (1,os.path.isabs(file_dir))        1. True               # 判断是否绝对路径
    print (2,os.path.isabs(file_name))       2. False                 
    print (3,os.path.isabs(file_abs))        3. True                
    print (4,os.path.exists(file_abs))       4. True              # 判断是否真实存在
    print (5,os.path.exists(os.path.join(file_dir,"xxx")))           5. False     
    print (6,os.path.isdir(file_dir))        6. True               # 判断是否是个目录
    print (7,os.path.isdir(file_abs))        7. False
    print (8,os.path.isfile(file_dir))       8. False               # 判断是否是个文件
    print (9,os.path.isfile(file_abs))       9. True

    3、路径名、文件名分割

        os.path.split(...)            # 分隔目录和文件名/文件夹名         
    
        os.path.splitdrive(...)        # 分隔盘符(windows系统)     
    
        os.path.splitext(...)           # 分隔文件和扩展名

    这些合并、拆分路径的函数并不要求目录和文件要真实存在,它们只对字符串进行操作。

    4、工作目录及创建文件夹操作

        os.getcwd()       # 获取当前工作目录
    
        os.chdir(...)       # 改变工作目录
    
        os.listdir(...)      # 列出目录下的文件
    
        os.mkdir(...)      # 创建单个目录        注意:创建多级用 os.makedirs()
    
        os.makedirs(...)    # 创建多级目录
    import os
    
    file_dir = "D:\\Python_os\\os"    
    
    print (os.getcwd())                                # 获取当前工作目录
    os.chdir(file_dir)                                 # 改变工作目录
    print (os.getcwd())    
    print (os.listdir(file_dir))                       # 列出当前工作目录的所有文件 Python2 不支持 os.listdir()    Python3 会列出当前工作目录下的所有文件      
    os.mkdir("test_mkdir")                             # 在当前工作目录下创建文件夹 test_mkdir;注意不可存在相同文件夹,不然会报错
    os.makedirs("test_mkdir\\test1")
    os.chdir(".\\test_mkdir")                          # . 表示本级目录; .. 表示上级目录
    print (os.getcwd())    
    for i in range(2,6):                               # 使用for循环等,可方便的创建多个文件夹
        dir_name = "test" + str(i)
        os.mkdir(dir_name)

    在执行了上述实例代码后,os 文件夹中新建了空的 test_mkdir 文件夹,而 test_dir 文件夹下也新建出了 test1 至 test5 的空文件夹

    创建文件夹可能会出错,原因具体有:(1) path 已存在时(不管是文件还是文件夹)  (2) 驱动器不存在  (3) 磁盘已满  (4) 磁盘是只读的或没有写权限

    5、删除文件夹、文件

        os.rmdir(...)            # 删除空文件夹  注意:必须为空文件夹  如需删除文件夹及其下 
                                                              所有文件,需用 shutil
    
        os.remove(...)                   # 删除单一文件
    
        shutil.rmtree(...)               # 删除文件夹及其下所有文件

    在上方示例的文件夹基础上,操作删除 test1 文件夹 (空文件夹可用 os.rmdir() ),删除 test_mkdir 及其下所有文件();示例代码如下

    import os
    import shutil
    
    file_dir = "D:\\Python_os\\os"                    
    
    ''' 删除文件/文件夹 '''
    os.chdir(file_dir+"\\test_mkdir")                    
    print(os.getcwd())                                    # 确保当前工作目录
    print(os.listdir(os.getcwd()))                        # 查看当前文件夹下所有文件    
    os.rmdir("test1")                                     # 删除 test1 文件夹(空文件夹)
    print(os.listdir(os.getcwd()))    
    os.chdir("..\\")
    print(os.getcwd())                                    # 切换到上级目录
    print(os.listdir(os.getcwd()))
    shutil.rmtree("test_mkdir")                           # 删除 test_mkdir 及其下所有文件

    可见运行结果如下;产生异常的可能原因:  (1) 路径不存在 (2) 路径子目录中有文件或下级子目录(os.rmdir) (3) 没有操作权限或只读

    只是删除单一文件,则用   os.remove("test.txt")   即可;产生异常的可能原因:  (1) 文件不存在   (2) 对该文件没有操作权限或只读。

    6、重命名文件夹/文件

    可对某一文件或文件夹重命名   os.rename(oldfileName, newFilename)  

    在os文件夹中新建文件夹 test,文件 test.txt

    ''' 重命名文件夹/文件 '''
    os.chdir(file_dir)
    print(os.listdir(os.getcwd()))
    os.rename("test","test1")    
    os.rename("test.txt","test1.txt")                # 重命名,注意需要带扩展名
    print(os.listdir(os.getcwd()))

    可见运行结果如下;产生异常的可能原因:  (1) oldfilename 旧文件名不存在(文件须带扩展名)   (2)newFilename 新文件已经存在

    注意:新文件的扩展名不能遗漏,理论上需要保持类型一致;但这也不失为改文件类型的一种方式(相当于直接改文件的扩展名)

    7、复制移动文件夹/文件

    须使用 shutil 模块,引入 import shutil 

        shutil.copyfile("old","new")       # 复制文件,都只能是文件
    
        shutil.copytree("old","new")     # 复制文件夹,都只能是目录,且new必须不存在
    
        shutil.copy("old","new")           # 复制文件/文件夹,复制 old 为 new(new是文件, 
                                                    若不存在,即新建),复制 old 为至 new 文件夹 
                                                   (文件夹已存在)
    
        shutil.move("old","new")          # 移动文件/文件夹至 new 文件夹中

    我们现在 D:\ 下创建新文件夹 Python_shutil ,然后工作目录切到该目录,直接使用 Python 来操作吧,参考代码如下:

    import os
    import shutil
    
    os.chdir("D:\\")
    os.mkdir("Python_shutil")
    file_dir = "D:\\Python_shutil"
    os.chdir(file_dir)

    为演示复制、移动操作,我们在该文件夹下手动操作 新建文件夹 test_org、 test_copy 及 test_move; 新建文件 test.txt  test1.txt , 两者内容不同

    Python 复制、移动的操作示例代码如下:

    import os
    import shutil
    
    file_dir = "D:\\Python_shutil"
    os.chdir(file_dir)
    shutil.copyfile("test_org.txt","test_copy.txt")        # copy test_org.txt 为 test_copy.txt 若存在,则覆盖
    shutil.copyfile("test_org.txt","test1.txt")            # 存在,覆盖
    shutil.copytree("test_org","test_copytree")            # copy test_org 为 test_copytree(不存在的新目录)
    shutil.copy("test_org.txt","test_copy1.txt")           # 同 copyfile
    shutil.copy("test_org.txt","test_copy")                # 将文件 copy 至 目标文件夹中(须存在)
    shutil.copy("test_org.txt","test_xxx")                 # 将文件 copy 至 目标文件(该文件可不存在,注意类型!)
    print os.listdir(os.getcwd())
    shutil.move("test_org.txt","test_move")                # 将文件 move 至 目标文件夹中
    shutil.move("test_org","test_move")                    # 将文件夹 move 至 目标文件夹中
    print os.listdir(os.getcwd())

     

    不要努力成为一个成功者,要努力成为一个有价值的人。

    展开全文
  • IIS 和 WEB 站点文件夹权限配置

    万次阅读 2012-08-31 21:01:17
    首先在 D:根目录新建一个 wwwroot 文件夹,用来做为 WEB 服务器站点的根目录,里面存放不同网站的文件夹。例如新建第一个网站存放文件的目录 WebSite1,为了杜绝跨站攻击等各种相关安全问题,实现各个虚拟主机目录...
    IIS 是微软的组件中漏洞最多的一个,平均两三个月就要出一个漏洞,而微软的 IIS 默认安装又实在不敢恭维。
    首先在 D:根目录新建一个 wwwroot 文件夹,用来做为 WEB 服务器站点的根目录,里面存放不同网站的文件夹。例如新建第一个网站存放文件的目录 WebSite1,为了杜绝跨站攻击等各种相关安全问题,实现各个虚拟主机目录有独立权限的访问机制,我们要给每个目录分配一个匿名访问的用户帐号。

    依次右击桌面我的电脑----->管理------>本地用户与组,然后新建一个用户 IISUSER_01,选中用户不能更改密码和密码永不过期,去掉其余两项复选。(当然,如果您的 WEB SERVER 上有 50 个虚拟主机的话,可以再以同样的方法新增一些用户)。可以给每个新增用户设定个密码,当然,其实为空也无大碍,因为这是用来为 IIS 匿名访问用户而设的,对系统安全基本不会有影响。

    新增用户后因为默认新增用户自动加入 Users 组内,要分别去除掉它们 User 组的权限,并重新分别把它们只归属于 Guests 组,这一步一定要记住了,安全问题很关键。设置完成后,为了方便统一划分 WEB 站点匿名访问用户的权限,再新建一个用户组,例如为 IISUSER_GROUP,把 IISUSER_01 用户添加到 IISUSER_GROUP 组内。

    用户和组设置好后,我们再次打开 d 盘的 wwwroot,右击 website1 文件夹在属性配置的安全选项里,添加 IISUSER_01 用户权限(如果是单纯的 HTML 站点可以只给读取权限即可,如果是 ASP+ACESS 数据库或需要进行 FSO 操作的站点,同时还需要加上"写入"权限或一般我们将“完全控制”权给 IISUSER_01 用户)。
     
    如果想进行更严密的安全配置,可以设置IISUSER_01 用户在website1目录的权限为读取,在需要更新或写入操作的图片上传目录或数据库目录上才赋予写入权限,这样更为安全。做完这一步,网站的目录安全性就够了吗?不,利用一些 FSO 等木马一样还可以进行跨站进行读取,虽然跨站后没有权限修改,但比如用海洋顶端的文件夹打包功能,仍能进行跨站浏览系统磁盘及包操作并下载!解决的方法是,右击 C 和 D 盘符选择属性中的安全选项,添加刚才我们建立的用户组(包含有 IISUSER_01 或新增的其它 WEB 网站目录用户),禁止该组的所有操作权限。
    (注意子目录继承权限的设置,WebSite1 目录不要继承父目录的该权限。)
     
    这样一来,每个站点的浏览者(匿名访问用户)也只能对该站目录内文件进行一定的权限操作,即使 ASP 木马上传到其中一个网站目录,不会对别的站点造成任何影响,更不会对服务器的安全有任何危险。

    文件夹安全配置完后,我们下一步将进行 IIS 的配置。

    首先打开 IIS 管理器—》主目录,为了方便统一管理,将默认站点重命名为 WebSite1 并将主目录指向 D:\wwwroot\WebSite1 目录。 

    然后点击本窗口的配置按钮进入应用程序配置,在应用程序扩展栏中删除必须之外的任何无用映射, 只保留你确实需要用到的文件类型,比如 ASP,ASPX,shtml 等,一般的 WEB 服务器应用有了其中两个映射就够了,其它的映射在以往的自由微软漏洞中都发生过太多的安全漏洞事件,不信你可以去查查以前的漏洞列表。开始把不用的扩展一个个删除掉吧。

    配置完这一项,再点击本窗口上方的选项栏,一般在大部分的 ASP 程序中,我们都会在代码中调用父路径,我们在这一页中勾选中[启用父路径]的复选框,当然如果你确定你的程序不会有调用父路径的代码,最好不要选择此项,安全性会更强一些。最后,再点击本窗口上方的调试栏,在脚本错误的错误消息选项中,选中[向客户端发送下列文本错误消息]项否则 ASP 脚本出错时,出错信息很可能会向客户端显示你的数据库路径(即黑客常说的暴库),程序代码,结构,参数等重要信息。

    为了避免 cgi 漏洞扫描器扫描到 IIS 漏洞的安全隐患,在 IIS 管理面板中将 HTTP404 Object Not Found 出 错 页 面 通 过 URL 重 定 向 到 一 个 定 制 HTM 文 件 , 我 们 可 以 更 改C:/WINDOWS/Help/iisHelp/common/404b.htm 内容改为:<META http-equiv="REFRESH" content="5;URL=您的网站首页">,或者可在 IIS 管理面板中的自定义错误栏修改 404 错误页的 HTML 文件路径并做相应修改最后,我们还要把之前在为该站点建立的匿名用户帐号绑定到此站点的目录安全性中的访问权限来。打开站点的属性页中的"目录安全性"选项卡,点身份验证和访问控制的"编辑" 勾选启用匿名访问,并点击该栏的浏览按钮,选择我们之前为此站点(WebSite1)分配的匿名用户帐号 IISUSER_01, 输入该用户的口令,提示再次输入确认密码。如无则留空即可。

    经过设置匿名访问帐号后,"WebSite1"网站的用户,使用 ASP 的 FileSystemObject  组件 或 其 它 木 马 程 序 入 侵 攻 击 服 务 器 时 , 也 只 能 访 问 “ WebSite1 ” 的 网 站 目 录 :d:\wwwroot\WebSite1  下的内容,当试图访问其他内容时,会出现诸如"没有权限"、"硬盘未准备好"、"500 服务器内部错误"等出错提示了(曾试过用 asp 海洋顶端 2006 木马进行全面测试,对服务器安全不构成任何影响)。

    如果你的 WEB 服务器需要放置多个 WEB 站点,那么最简单的方法就是配置主机头的方法。

    在这里以建立两 个网 站分别为 www.alixixi.com 和 www.ejchina.com 为例。首先将www.alixixi.com 和 www.ejchina.com 两个域名的 DNS 解析到服务器的 IP 地址。比如www.alixixi.com 就存放在上面我们配置的 d:wwwroot\WebSite1 目录中,这样我们打开 IIS管理器,右击 WebSite1 站点属性。 

    点击 IP 地址的高级按钮,修改 IP 地址的主机头为 www.gzidc.me。 

    这样,第一个站点就设置成功了,接着我们可以继续添加第二个站点了,以同样的方法,在添加时不用更改 TCP/IP 的端口,直接设定另一站点的主机头为 www.ejchina.com 就可以完成第二个站点的建立了。利用主机头方式建立多站点,必须使用友好网址才能访问,同样也可通过 IP端口和多 IP 地址实现多站点,但这里不再详细介绍。如果需要做泛域名解析,则将该站点设定为空主机头,并在域名 DNS 建立一个*.域名.com 解析到服务器 IP 就可以实现泛域名解析。

    最后,别忘了备份 IIS 的配置,在灾难性系统崩溃或 IIS 出现重大错误需要重新安装等紧急事故,可以快速的恢复 IIS 的安全配置,恢复站点的正常运行,备份功能很简单,IIS 管理面板的操作工具栏—》所有任务—》进行备份。

    如想了解更多的备份及相关技术信息,请点击 IIS 帮助,在 IIS6 管理员指南中查阅。

    以下是摘自管理员指南中的一段相关备份的资料:
    实际上,配置数据库是指 MetaBase.xml 与 MBSchema.xml  文件的组合以及驻留内存的 配 置 数据库 。IIS  配 置信息存储在 MetaBase.xml  文 件 中 ,而配置数 据 库 架构存储在MBSchema.xml  文件中。当启动 IIS 时,这些文件会由存储层读取,然后通过管理基本对象(ABO) 写入到内存中的配置数据库中…

    说到 MetaBase.xml,随便提到一点 IIS6 常遇到的问题,就是无法上传大文件的问题,IIS 6出于安全考虑, 默认最大请求 200K(也即最大提交数据限额为 200KByte, 204800Byte)。通常200K 的大小是不能满足我们站点的需求的,解决的方法如下:
    1. 关闭 IIS Admin Service 服务
    2. 打开 \Windows\system32\inesrv\metabase.xml
    3. 修改 ASPMaxRequestEntityAllowed 的值为自己需要的, 默认为 204800,即限制上传文件最大 200KB。
    4. 启动 IIS Admin Service

    其实如果你对编程有些了解,仔细查看 metabase.xml 文件中的内容,你会发现,很多 IIS配置同样可以在里面修改,当然,除非你很熟悉,否则不建议直接修改。

    配置到这一步,我们已经成功的配置了一台安全性较高的 WEB 服务器,但要实现功能强大的应用于 internet 的服务器,单单仅 WEB 功能还是不够的,为了日常的文件上传下载及维护管理,我们还要架设功能强大的 FTP 服务器!


    转自:http://blog.sohu.com/people/!aWRjbWlubWluQDE2My5jb20=/226632512.html

    展开全文
  • iis权限设置及故障排除

    千次阅读 2012-08-13 10:36:50
    1、这里有篇文章(虚拟一个win2003做服务器运行asp.net程序,共享文件夹权限问题)认为是共享文件夹权限的问题,不过我都可以在虚拟机里直接创建.aspx文件,并且把网站程序直接复制到虚拟机里也是同样情况,所以可以...

    1、这里有篇文章(虚拟一个win2003做服务器运行asp.net程序,共享文件夹权限问题)认为是共享文件夹权限的问题,不过我都可以在虚拟机里直接创建.aspx文件,并且把网站程序直接复制到虚拟机里也是同样情况,所以可以确定是IIS问题而不是共享文件夹权限问题。(后来证实在虚拟机里直接创建aspx是可以的,确实是虚拟机的共享文件夹问题)

    2、也非目录文件名问题,我把共享文件夹的文件路径全部都设为英文,仍然是那个错误。

    3、甚至我还按这里说的放到根目录下,作为一个虚拟目录而不是网站,也不行。

    4、按这里说的把文件所在的目录设置为应用程序,在属性-主目录中设置,却出现了另外一种情况:

    服务器应用程序不可用
    您试图在此 Web 服务器上访问的 Web 应用程序当前不可用。请点击 Web 浏览器中的“刷新”按钮重试您的请求。

    管理员注意事项: 详述此特定请求失败原因的错误信息可在 Web 服务器的系统事件日志中找到。请检查此日志项以查明导致该错误发生的原因。

    5、后来我还是把网站文件移到虚拟机中 ,新建了一个站点,没有进行其他配置,无意竟发现可以了,一切正常。

    查看了下正常状态下的权限和应用服务器设置,现在,可以找出这个问题的真正原因了:

    IIS6.0的默认设置是(我推算出来,而且还再虚拟了个2003才验证得出的结论啊):

    1、默认网站的权限安全里没有everyone组
    2、aspnet_client及下级目录的权限安全里有everyone组
    3、默认网站有创建一个应用程序“默认应用程序”
    4、aspnet_clent没有应用程序,需要自己创建。
    5、新建站点或目录没有everyone组。无论此站点或目录的上级文件夹是否有everyone权限。(第一次新建站点或目录都只开放Administrators跟system权限)
    6、新建站点或目录会新建应用程序,无论此应用程序的上机目录或网站是否有应用程序。
    7、 但IIS有个特性,就是创建新站点时的权限并非按他默认的设置,而是按你上一次的设置而创建。比如上次如果给某个网站开放everyone权限,那么这次 新建的网站就会是everyone权限的。反之则创建的网站或目录没有everyone权限。上面的3、4两点就失效了。
    8、不过应用程序设置并无这个特性,新建站点或目录时都会自动创建应用程序。

    而aspx网站需要正常运行的配置为:

    1、权限安全组里必须包含ereryone。而IIS6里的那个“默认网站”下的aspnet_client目录安全里就有everyone权限 组,所以才如上面第三点说的,有人把网站放到默认网站的目录下就可以了。注意:“默认网站”安全里并无everyone组,所以我之前做的把网站放在跟 aspnet_client并列的目录是不行的,因为那样跟随的就是“默认网站”的目录安全设置,没有开放everyone权限。

    2、必须创建应用程序,不管是网站还是虚拟目录。不过默认其实都是帮我们创建好的,

    错误速查:

    1、.html可正常访问,访问.asp出现:HTTP/1.1 新建应用程序失败;访问aspx文件出现:

    无法显示网页
    您正在查找的页当前不可用。 网站可能遇到支持问题,或者您需要 调整您的浏览器设置。
    ….

    找不到服务器或 DNS 错误
    Internet Explorer

    则是整个站点都没有创建应用程序(不管整个站点是不是everyone权限)

    2、.html可正常访问,.asp可正常访问;而任何.aspx都出现:

    服务器应用程序不可用
    您试图在此 Web 服务器上访问的 Web 应用程序当前不可用。请点击 Web 浏览器中的“刷新”按钮重试您的请求。

    管理员注意事项: 详述此特定请求失败原因的错误信息可在 Web 服务器的系统事件日志中找到。请检查此日志项以查明导致该错误发生的原因。

    则应该是整个网站或整个目录都没有everyone权限(肯定有创建应用程序,否则就是上面的那种情况了)

    4、.html可正常访问,.asp可正常访问;而.aspx正常或出现:

    “/”应用程序中的服务器错误。
    ——————————————————————————–

    配置错误
    说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。

    分析器错误信息: 加载配置文件时出错: 由于访问被拒绝,未能开始监视对“C:\Inetpub\wwwroot\chenfangyi.com\web.config”的更改。

    源错误:

    [没有相关的源行]

    源文件: C:\Inetpub\wwwroot\chenfangyi.com\web.config    行: 0

    ——————————————————————————–
    版本信息: Microsoft .NET Framework 版本:2.0.50727.832; ASP.NET 版本:2.0.50727.832

     

    这就是我一开始出现的问题。这样则说明该站点(上级的上机目录)有应用程序,有两种可能:(1)、当前虚拟目录既没有创建 应用程序也没有开放everyone目录(比如开始时我把虚拟目录架设在默认网站下,就是这个情况)。(2)、虽然有创建应用程序,但权限无法更改(比如 我开始时把网上邻居里的目录设为网站或者某个目录就老出现这个情况) 。

    第一种情况很好解决,为此目录开放everyone权限并创建应用程序即可。而第二种情况暂时还无法解决。

    5、html可正常访问,.asp可正常访问;而.aspx出现:

    “/chenfangyi.com11”应用程序中的服务器错误。
    ——————————————————————————–

    配置错误
    说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。

    分析器错误信息: 在应用程序级别之外使用注册为 allowDefinition=’MachineToApplication’ 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。

    源错误:

    行 9:      </connectionStrings>
    行 10:     <system.web>
    行 11:         <authentication mode=”Forms”>
    行 12:             <forms timeout=”60″ />
    行 13:         </authentication>

    源文件: C:\Inetpub\wwwroot\chenfangyi.com\web.config    行: 11

    显示其他配置错误:

    在应用程序级别之外使用注册为 allowDefinition=’MachineToApplication’ 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。 (C:\Inetpub\wwwroot\chenfangyi.com\web.config line 14)

    ——————————————————————————–
    版本信息: Microsoft .NET Framework 版本:2.0.50727.832; ASP.NET 版本:2.0.50727.832

     

    或类似的“应用服务器错误”,那说明是站点(上级的上机目录)有应用程序,但当前虚拟目录却没有创建应用程序。为此目录创建应用程序即可解决。


    6、.html可正常访问,.asp可正常访问;而.aspx正常或出现:

    “/”应用程序中的服务器错误。
    ——————————————————————————–

    编译错误
    说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

    编译器错误信息: ASPNET: 请确保此代码文件中定义的类与“inherits”属性匹配,并且该类扩展的基类(例如 Page 或 UserControl)是正确的。

    源错误:

    行 10: using System.Web.UI.HtmlControls;
    行 11:
    行 12: public partial class Default : System.Web.UI.Page
    行 13: {
    行 14:     protected void Page_Load(object sender, EventArgs e)

    源文件: c:\Inetpub\wwwroot\chenfangyi.com\Default.aspx.cs    行: 12

    显示详细的编译器输出:

    或类似的错误,则说明IIS设置正常,只是普通的aspx页面代码错误。

    展开全文
  • 1. 在IIS Web站点上右键 --> 编辑权限 2. 在弹出的窗体上选择【安全】选项卡,如图: 3. 在安全选项卡中点击...6. 单击【立即查找】,会看到同窗提对话中下面的搜索结果列表栏中出现权限组列表
  • IIS7的目录权限问题

    千次阅读 2011-12-20 15:47:54
    问题描述: 1. ... Win7 IIS7 配置错误由于权限不足而无法读取配置文件 ...由于 Web 服务器上此资源的访问控制列表(ACL)配置或加密设置,您无权查看此目录或页面。...网络资料都说给文件夹加入IIS_IUSRS用户权限可
  • 你是否有这样的需求,在Windows10下实现两个/多个文件夹的关联/同步更新? 我相信你有,不是现在就是在不久的未来。实现文件夹下子文件夹和文件的同步更新,是个隐形的诉求。 首先,说明一下,为什么强调是在在...
  • # 原文件夹 old_path = "G:/MP4" # 查看原文件夹下所有的子文件夹 filenames = os.listdir(old_path) # 新文件夹 target_path = "G:/MP5" if not os.path.exists(target_path): os.mkdir(target_path) ...
  • 任务管理器(启动)——性能——资源监视器——CPU——关联的句柄——输入文件名——停止运行出现的所有程序
  • 1.文件操作 package TestFile;/* * zt * 2020/8/6 * 16:47 * 文件操作 1.创建文件 2.删除文件 3.获取信息 4.判断 5.修改名字 */ import java.io.File; import java.io.IOException;... public s
  • Windows10_如何修改用户文件夹下的中文用户文件夹

    万次阅读 多人点赞 2018-09-12 11:20:20
    那么下面来说说到底如何修改win10用户文件夹中中文用户的文件夹名字…. 1. 首先进入管理员账户(Administrator) 一般很多人的管理员用户是禁用的,此时就找到“此电脑”右击,点击管理 点击管理后,出现如下的...
  • 在删除文件夹的时候,可能会遇到文件夹正在使用,操作无法完成,因为其中的文件,或文件夹已在另一个程序中打开,请关闭该文件夹或或文件,然后重试。这类无法关闭删除文件夹的情况,如下图所示。 解决这个的...
  • Win10-更改c盘下的用户文件夹

    万次阅读 多人点赞 2019-01-01 09:37:41
    下面说下怎么更改 c盘下的用户文件夹名。(肯定不是简单粗暴的重命名就完事了)首先 要进入管理员账户(Administrator)许多人找不到 管理员账户的原因是 windows 默认是禁用管理员账户 的,要解禁的方法很简单:...
  • 电脑文件夹一闪一闪

    万次阅读 2017-07-03 13:41:14
    因为电脑上插了一个移动硬盘,如果拔掉就没有问题,除非是移动硬盘中毒了或者损坏,然后又查了一些资料,发现把文件中的“预览窗格”打开了,然后就导致文件夹一闪一闪,关闭就可以。 “预览窗格”位置:打开资源...
  • 逻辑:使用bat(脚本实现这个功能)获取当前路径下所有文件夹和文件名,并换行输出至txt文件中。 运行文件下载链接:http://download.csdn.net/download/i_likechard/9975303 步骤: 一.首先创建一个bat文件。 ①...
  • 最近由于学习需要,于是装了一个虚拟机(安装的linux版本是Ubuntu 16.04),为了文件访问方便配置了共享文件夹,但是配置好之后怎么也找不着配置好的文件夹(按道理来说在/mnt/hdfs/目录下是可以找见共享文件夹的)...
  • python 删除非空文件夹

    万次阅读 2017-08-14 10:22:02
    但是如果需要删除整个文件夹,且文件夹非空时使用os.removedirs(path)就会报错了,此时可以使用shutil库,该库为python内置库,是一个对文件及文件夹高级操作的库,可以与os库互补完成一些操作,如文件夹的整体复制...
  • 在windows系统中,我们经常会遇到这样一个问题:删除某一个文件或者文件夹,被提醒:操作无法完成,因为其中的文件夹或文件已在另一个程序中打开。 这个时候我们一般会先检查是否真的有程序或者文件打开了没有关闭...
  • linux查找文件夹命令

    万次阅读 2019-12-06 11:52:02
    查找根目录下查找文件夹名称叫www.91cnm.com的目录地址find / -name www.91cnm.com -d查找/var/www/目录下叫index.php的文件find /var/www/ -name index.php 查找根目录下所有已”.sh”结尾的文件find / -name *....
  • TortoiseSVN文件夹及文件图标不显示解决方法

    万次阅读 多人点赞 2012-12-04 21:24:06
    由于自己的电脑是win7(64位)的,系统安装TortoiseSVN之后,其他的功能都能正常的使用,但是就是文件夹文件夹的左下角就是不显示图标,这个问题前一段时间就遇到了(那个时候没找到合适的答案),这段时间重新...
1 2 3 4 5 ... 20
收藏数 2,156,463
精华内容 862,585
关键字:

文件夹