精华内容
下载资源
问答
  • 在C#中使用FolderBrowserDialog类,就可以实现选择文件夹的功能,并将所选择的的文件夹路径记录下来。  (1).首先先引入命名空间System.Windows.Forms;   (2).然后在应用程序的主入口点,也就是static void ...

      今天在做报表统计的时候,遇到将报表生成到指定的位置去,在网上找了一些资料,整理了一下,分享一下。

      1.在C#中使用FolderBrowserDialog类,就可以实现选择文件夹的功能,并将所选择的的文件夹路径记录下来。

      (1).首先先引入命名空间System.Windows.Forms;  

      (2).然后在应用程序的主入口点,也就是static void Main()方法上面加上[STAThread]属性;

            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }

      (3).然后定义我们的事件触发;

      

            private void button1_Click(object sender, EventArgs e)
            {
                FolderBrowserDialog dilog = new FolderBrowserDialog();
                dilog.Description = "请选择文件夹";
                if(dilog.ShowDialog() == DialogResult.OK || dilog.ShowDialog() == DialogResult.Yes)
                {
                    path=dilog.SelectedPath;
                }
            }

      (4).打开刚才我们所选择的文件夹;

            private void button2_Click(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(path))
                {
                    System.Diagnostics.Process.Start("Explorer.exe", path);
                }
                else
                {
                    MessageBox.Show("请选择路径");
                }
            }

        以上就完成了,选择文件夹的功能.

      2.需要注意的是在程序的入口点出,需要添加[STAThread]属性,当然也可以不添加这个属性,但是需要开启另外一个线程来处理。代码如下所示:

            private void button1_Click(object sender, EventArgs e)
            {
                Thread newThread = new Thread(new ThreadStart(TEST));
                newThread.SetApartmentState(ApartmentState.STA);
                newThread.Start();
                ////Thread app = new Thread(new ParameterizedThreadStart(TEST));//两个TEST方法不一样,委托类型不一样
                //app.ApartmentState = ApartmentState.STA;
                //app.Start();
    
            }
    
            private void TEST(object obj)
            {
                FolderBrowserDialog dilog = new FolderBrowserDialog();
                dilog.Description = "请选择文件夹";
                if(dilog.ShowDialog() == DialogResult.OK)
                {
                    path=dilog.SelectedPath;
                }
    
            }
            private void TEST()
            {
                FolderBrowserDialog dilog = new FolderBrowserDialog();
                dilog.Description = "请选择文件夹";
                if (dilog.ShowDialog() == DialogResult.OK)
                {
                    path = dilog.SelectedPath;
                }
            }

     

         选择文件夹的Demo点击此处下载。

     

     

     

     

     

    转载于:https://www.cnblogs.com/akwwl/archive/2013/04/27/3048069.html

    展开全文
  • 概述I/O操作不仅包括屏幕输入输出,还包括文件的读取与写入,Python提供了很多必要的方法和功能,进行文件及文件夹的相关操作。本文主要通过两个简单的小例子,简述Python在文件夹及文件的应用,仅供学习分享使用,...

    概述

    I/O操作不仅包括屏幕输入输出,还包括文件的读取与写入,Python提供了很多必要的方法和功能,进行文件及文件夹的相关操作。本文主要通过两个简单的小例子,简述Python在文件夹及文件的应用,仅供学习分享使用,如有不足之处,还请指正。

    涉及知识点

    os模块:os 模块提供了非常丰富的方法用来处理文件和目录。

    open方法:open方法用于打开一个文件,用于读取和写入。

    实例1:获取指定目录下所有的文件大小,并找出最大文件及最小文件

    分解步骤:

    遍历文件夹下所有的子文件及子文件夹(需要递归),并计算每一个文件的大小

    计算所有文件的大小总和

    找出最大文件及最小文件

    核心代码

    定义一个方法get_file_size,获取单个文件的大小,单位有KB和MB两种。关键点如下所示:

    os.path.getsize 用于获取指定文件的大小,单位是Byte。

    round为四舍五入函数,保留指定位数的小数。

    def get_file_size(file_path, KB=False, MB=False):

    """获取文件大小"""

    size = os.path.getsize(file_path)

    if KB:

    size = round(size / 1024, 2)

    elif MB:

    size = round(size / 1024 * 1024, 2)

    else:

    size = size

    return size

    定义一个方法list_files,遍历指定文件目录,并存入字典当中。关键点如下所示:

    os.path.isfile 用于判断给定的路径是文件还是文件夹。

    os.listdir 用于获取指定目录下所有的文件及文件夹,返回一个列表,但是只是当前文件夹的名称,并不是全路径。

    os.path.join 用于拼接两个路径

    def list_files(root_dir):

    """遍历文件"""

    if os.path.isfile(root_dir): # 如果是文件

    size = get_file_size(root_dir, KB=True)

    file_dict[root_dir] = size

    else:

    # 如果是文件夹,则遍历

    for f in os.listdir(root_dir):

    # 拼接路径

    file_path = os.path.join(root_dir, f)

    if os.path.isfile(file_path):

    # 如果是一个文件

    size = get_file_size(file_path, KB=True)

    file_dict[file_path] = size

    else:

    list_files(file_path)

    计算总大小和最大文件及最小文件,如下所示:

    通过比较字典value的大小,返回对应的key的名称。关键点如下所示:

    max_file = max(file_dict, key=lambda x: file_dict[x])

    min_file = min(file_dict, key=lambda x: file_dict[x])

    if __name__ == '__main__':

    list_files(root_dir)

    # print( len(file_dict))

    # 计算文件目录大小

    total_size = 0

    # 遍历字典的key

    for file in file_dict:

    total_size += file_dict[file]

    print('total size is : %.2f' % total_size)

    # 找最大最小文件

    max_file = max(file_dict, key=lambda x: file_dict[x])

    min_file = min(file_dict, key=lambda x: file_dict[x])

    print('max file is : ', max_file, '\n file size is :', file_dict[max_file])

    print('min file is : ', min_file, '\n file size is :', file_dict[min_file])

    实例2:将两个文本文件中的内容进行合并,并保存到文件中

    两个文件内容,如下图所示:

    分解步骤:

    读取两个文件中的内容并进行解析出key和value,存入字典当中(两个字典,分别存储两个文件的内容)。

    遍历第1个字典,并查找第2个字典当中相同key的值,如不存在,则只显示第1个内容,如存在,则进行合并。

    遍历第2个字典,并查找不在第1个字典当中的key的值,进行累加。

    将拼接后的列表存入文件当中。

    核心代码

    定义一个函数read_book,用于读取两个文件的内容。关键点如下所示:

    open函数用于打开一个文件,文件编码为UTF-8。

    readlines用于读取所有的行,并返回一个列表。

    split用于分割字符串为数组。

    def read_book():

    """读取内容"""

    # 读取一个文件

    file1 = open('book1.txt', 'r', encoding='UTF-8')

    lines1 = file1.readlines()

    file1.close()

    for line in lines1:

    line = line.strip() # 去空白

    content = line.split(',')

    book1[content[0]] = content[1]

    # 另一种方式,读取另一个文件,不需要close,会自动关闭

    with open('book2.txt', 'r', encoding='UTF-8') as file2:

    lines2 = file2.readlines()

    for line in lines2:

    line = line.strip() # 去空白

    content = line.split(',')

    book2[content[0]] = content[1]

    定义一个函数,用于合并内容,并保存。关键点如下所示:

    append 用于为数组添加新元素。

    dict.keys函数 用于返回所有的key。

    join函数用于将数组转换成字符串,并以对应字符分割。

    writelines 用于写入所有的行到文件。

    with语法,当执行结束时,自动close,并释放资源。

    def merge_book():

    """合并内容"""

    lines = [] # 定义一个空列表

    header = '姓名\t 电话\t 文本\n'

    lines.append(header)

    # 遍历第一个字典

    for key in book1:

    line = ''

    if key in book2.keys():

    line = line + '\t'.join([key, book1[key], book2[key]])

    line += '\n'

    else:

    line = line + '\t'.join([key, book1[key], ' *****'])

    line += '\n'

    lines.append(line)

    # 遍历第2个,将不包含在第1个里面的写入

    for key in book2:

    line = ''

    if key not in book1.keys():

    line = line + '\t'.join([key, ' *****', book2[key]])

    line += '\n'

    lines.append(line)

    # 写入book3

    with open('book3.txt', 'w', encoding='UTF-8') as f:

    f.writelines(lines)

    整体调用,如下所示:

    if __name__ == '__main__':

    # 读取内容

    read_book()

    # 合并内容

    merge_book()

    # print(book1)

    # print(book2)

    最后拼接后生成的文件,如下所示:

    通过以上两个例子,可以大致了解文件及目录操作的一些方法及步骤。

    以上就是Python 如何对文件目录操作的详细内容,更多关于Python 文件目录操作的资料请关注脚本之家其它相关文章!

    展开全文
  • JAVA选择文件夹路径,该怎么解决关注:285答案:1mip版解决时间 2021-02-06 07:49提问者彼岸独舞2021-02-06 04:19JAVA选择文件夹路径,该怎么解决最佳答案二级知识专家瑾色如弦2021-02-06 04:55用JFileChooser,并且...

    JAVA选择文件夹路径,该怎么解决

    关注:285  答案:1  mip版

    解决时间 2021-02-06 07:49

    e6cb1a03ad541b3098697807b7bf1798.png

    提问者彼岸独舞

    2021-02-06 04:19

    JAVA选择文件夹路径,该怎么解决

    最佳答案

    e6cb1a03ad541b3098697807b7bf1798.png

    二级知识专家瑾色如弦

    2021-02-06 04:55

    用JFileChooser,并且setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

    Java codepublic class DemoJFileChooser extends JPanel

    implements ActionListener {

    JButton go;

    JFileChooser chooser;

    String choosertitle;

    public DemoJFileChooser() {

    go = new JButton("Do it");

    go.addActionListener(this);

    add(go);

    }

    public void actionPerformed(ActionEvent e) {

    int result;

    chooser = new JFileChooser();

    chooser.setCurrentDirectory(new java.io.File("."));

    chooser.setDialogTitle(choosertitle);

    chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

    //

    // disable the "All files" option.

    //

    chooser.setAcceptAllFileFilterUsed(false);

    //

    if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {

    System.out.println("getCurrentDirectory(): "

    + chooser.getCurrentDirectory());

    System.out.println("getSelectedFile() : "

    + chooser.getSelectedFile());

    }

    else {

    System.out.println("No Selection ");

    }

    }

    public Dimension getPreferredSize(){

    return new Dimension(200, 200);

    }

    public static void main(String s[]) {

    JFrame frame = new JFrame("");

    DemoJFileChooser panel = new DemoJFileChooser();

    frame.addWindowListener(

    new WindowAdapter() {

    public void windowClosing(WindowEvent e) {

    System.exit(0);

    }

    }

    );

    frame.getContentPane().add(panel,"Center");

    frame.setSize(panel.getPreferredSize());

    frame.setVisible(true);

    }

    }

    我要举报

    如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

    →点此我要举报以上信息!←

    推荐资讯

    大家都在看

    展开全文
  • winform可以用FolderBrowserDialog来选择文件夹,但是在mvc的controller里,貌似不可以,还是我命名空间弄错了?小弟完全属于菜鸟,请各位教教。
  • recuva怎么恢复文件夹

    2021-03-24 18:11:47
    recuva怎么恢复文件夹?recuva是一款十分windows平台上十分好用的文件恢复工具。我们在进行磁盘清理的时候不免有时会将需要的文件给误删除了。对于还不是很了解如何使用recuva恢复文件夹的小伙伴们,下文就给你带来...

    recuva怎么恢复文件夹?recuva是一款十分windows平台上十分好用的文件恢复工具。我们在进行磁盘清理的时候不免有时会将需要的文件给误删除了。对于还不是很了解如何使用recuva恢复文件夹的小伙伴们,下文就给你带来文件会的教程。

    recuva文件恢复教程

    打开recuva进入到软件的主界面中。

    我们可以使用软件来进行某一个磁盘或者是全部的磁盘进行扫描。(文中所选择的是所有本地磁盘扫描)扫描的时间会根据你电脑中的文件数量来决定。

    扫描完成之后软件就会为你列出各种被删除的软件。我们点击其中某一个文件在右侧还会显示这个文件的具体信息。

    http://www.973.com/bangong/

    在这些文件前面会分别用黄色绿色或者是红色的标志来进行标注。

    勾选你需要进行恢复的文件,单击右键在菜单中选择“恢复已选项目”后选择文件恢复后保存的位置。

    在选择保存目录的时候需要注意尽量不要放到原来的磁盘中,这样会降低文件恢复的成功率。

    等待文件恢复的完成就会出现”操作完成“的提示,点击“确定”按钮就可以了。

    接着我们在打开所保存的文件夹点击恢复的文件。如果能够打开那就说明恢复成功了。

    展开全文
  • 首先路径如下图: trai首先导入plt和osimport osimport matplotlib.pyplot as plt找到训练图片文件夹所在路径train_dir = os.path.join("F:/暑假机器学习内容下载/暑假算法代码下载_杂/Unet/unet-master/data/...
  • CFileDialog 里边选文件的时候,右下角那个按钮显示的是“打开”,直到用鼠标选中的是个文件而不是文件夹时,才变成“确定”。有没有什么方法能让这个按钮在选择文件夹时就显示“确定”呢?我要选一个文件夹肿么办
  • c# 选择文件夹

    2008-09-17 11:04:00
    我们知道,C#里面有选择文件的对话框控件,却没有选择文件夹的对话框控件,不少人为了选择一个文件夹只好自己用TreeView类来处理,其实在C#里面完全不用那么麻烦,我们可以用C#的FolderNameEditor类的子类...
  • 答:可以的1、双击打开此电脑2、进入系统盘,一般系统盘默认都是C盘,进入C盘,选择用户文件夹打开3、进入C盘后找到你目前的用户名文件夹,如我的S18010024、右键点击这个文件夹选择【属性】5、进入文件夹属性后,...
  • 蓝光导航菜单对于演唱会来说作用还是很大的,可以很方便地选择某一首歌曲进行播放。 在 Mac 上首选推荐的就是 Macgo Mac Blu-Ray Player Pro,它在的 Pro 专业版「可以支持蓝光导航菜单」。同时,它支持播放正版碟,...
  • Github怎么创建文件夹

    2020-07-26 17:13:22
    创建好项目后选择create new file 输入文件名并按下‘/’ 由于GitHub不能创建空文件夹,所以我们就随便创建一个文件。然后提交修改。
  • 怎么在桌面上建立共享文件夹?在电脑“桌面”上建立共享文件夹,可按以下步骤操作: 1、在电脑“桌面”空白处单击鼠标右键,在弹出菜单中选择“新建”,然后单击“文件夹” 2、在新建的文件夹上单击鼠标右键,在弹出...
  • 看图里的这个对话框是怎么出来的,请注意看,他是选择文件夹的,不是选择文件的,我在C#里只见过openFileDialog和FolderBrowserDialog ,但openFileDialog是选择文件的,倒是和图很想,FolderBrowserDialog 是选择...
  • // 显示文件夹选择对话框 LPITEMIDLIST lpidlBrowse = ::SHBrowseForFolder(&sInfo); if (lpidlBrowse != NULL) { // 取得文件夹名 if (::SHGetPathFromIDList(lpidlBrowse, szFolderPath)) {...
  • 右击该文件夹选择添加到压缩文件。 如图所示,可以看到添加密码的选项。 进入设置密码的界面,如图所示,输入密码后点击确定。 如图所示,点击立即压缩。 ...
  • 本文实例为大家分享了Unity3D选择本地图片并加载的具体代码,供大家参考,具体内容如下①找到System.Windows.Forms.dll:在unity的安装目录中找到它,如E:\ProgramFiles(x86)\Unity\Editor\Data\Mono\lib\mono\2.0②...
  • 两台win10 电脑怎么共享文件夹 本文以共享整个磁盘为例讲解怎么两台电脑直连共享,首先双击此电脑进入,如下图所示 右键单击你要共享的磁盘,选择属性,如下图所示 进入属性界面,点击共享选项卡,如下图所示 在共享...
  • 怎么文件夹加密

    2015-07-08 16:40:18
    随着信息技术的不断发展,u盘在...更多个人和企业选择使用u盘存储文件。尤其是一些图纸类项目成果,一个较大容量的u盘就可以将全部资料装下了。可是u盘的安全问题不容乐观,u盘方便的使用方法成了最大的安全隐患之一。
  • C# winform 实现选择文件夹对话框

    千次阅读 2012-02-29 21:23:10
    C#里面有选择文件的对话框控件,却没有选择文件夹的对话框控件,不少人为了选择一个文件夹只好自己用TreeView类来处理,其实在C#里面完全不用那么麻烦,我们可以用C#的FolderNameEditor类的子类FolderBrowser类来...
  • 用Putty通过ssh登陆Linux服务器时,有时候...(2)选择左边选项卡Colours,然后选中下拉列表中的ANSI Blue;(3)修改其RGB value的值为85, 85, 255;使其与ANSI Blue Bold的颜色一致;(4)返回Session页,save即可。UTF8...
  • 两台win10 电脑怎么共享文件夹 本文以共享整个磁盘为例讲解怎么两台电脑直连共享,首先双击此电脑进入,如下图所示 右键单击你要共享的磁盘,选择属性,如下图所示 进入属性界面,点击共享选项卡,如下图所...
  • 就可以共同享用这些文件,所以很多用户都会通过这个功能来传输文件,不过在给用户带来方便的同时,也存在着风险,比如病毒也能够通过共享文件夹来传播,那么win7系统怎么关闭系统默认共享文件夹呢?今天为大家分享win...
  • 就是就是从文件夹中可以选择图片,但下面要获取图片的名字,比如11.jpg,22.jpg。这不是图片的名字么,要和图片信息一致。从文件夹选择图片,要用什么语句?是用filename获取文件的名字么,我是菜鸟,完全不知道...
  • 就是用户在另一个包中选择文件夹,我想在另一个包里面调用这个选择文件夹怎么搞呢,谢谢,才学习,很多不懂。
  • win10下的设置壁纸中,幻灯片播放的浏览按钮,可以使用资源管理器选择一个文件夹, 请问这个效果在wpf中如何实现,![图片说明](https://img-ask.csdn.net/upload/201701/15/1484491023_840471.png) 还有,怎么样...
  • 我们知道,C#里面有选择文件的对话框控件,却没有选择文件夹的对话框控件,不少人为了选择一个文件夹只好自己用TreeView类来处理,其实在C#里面完全不用那么麻烦,我们可以用C#的FolderNameEditor类的子类...
  • VSCode中怎么改变文件夹的图标

    千次阅读 2019-02-22 09:09:00
    昨天更新了VSCode后我的文件夹图标莫名其妙的没有了,变成了下图这样 看着真的让我难受的头皮发麻,本来打代码就头发少,难道非要让我变成秃头,不可能不可能,所以我找了找怎么解决 来,各位看官上眼 如图所...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,504
精华内容 1,001
关键字:

怎么选择文件夹