go学习笔记(3)

本文介绍如何使用Golang快速构建一个简易Web服务器,并通过修改注册表实现鼠标右键菜单功能,使用户能轻松地为指定文件夹创建一个web访问路径。

在过去一段时间里面,使用nodejs,或者使用npm 一些脚本功能就能对一个资源目录提供一个web的访问功能,非常方便。在接触了golang里后,有一些比较简洁的代码能够实现过去一直的想法,尝试搭建一个静态的web服务器。至于代码是怎样,golang 的一些案例代码发现以下的案例非常有意思。所以今天记录下来。为了实现一个功能。在打包后,修改注册表添加一个鼠标右键的菜单,并且对鼠标右键菜单实现关联golang导出的exe文件。这样一来解决了我过去一些想用c#做的代码。看如下代码案例。

1.构建golang程序

这里的代码中,加上一个运行的参数的判定。当使用右键菜单时候,外部传递进来进行捕捉。

package main

import (
    "fmt"
    "log"
    "net/http"
    "os"
)

func main(){

    path := "file";        
    if( len(os.Args) > 1){
      path = os.Args[1]   
    } 

    fmt.Println(path)
    http.Handle("/", http.FileServer(http.Dir(path)))
    err := http.ListenAndServe(":8080", nil)
    if err != nil {
        log.Fatal("ListenAndServe",err)
    }

}

完成后,使用go build 进行编译构建出一个运行文件。

2. 添加鼠标右键菜单

使用命令regedit进入注册表,中
HKEY_CLASSES_ROOT\Directory。这个注册表针对文件夹打开才有效。
这里写图片描述

在这里添加一个命令文件夹egret,对其修改默认值Server,并在内部建立一个选项命为command。这个项中,需要加上一个值,关联构建后的exe程序httpgo.exe。

"G:\google\golang小工具\tool\httpgo.exe" "%1"

这里写图片描述

其中%1 会返回一个路径给程序。这个程序通过main函数里面获取到入口参数。

在调试过程中,发现os.Args的参数长度大于0,这一点有点奇怪。经过修改下标获取当菜单选项后对应的绝对路径。

这样一来,打包后的程序。设置注册表菜单后,调用一下就能实现对某一个文件夹进行实现web目录。。

这里写图片描述

执行完成后,该小型功能能够实现到静态文件的web功能。这对于弄实验开发egret非常有意思。但是有一个现象是,当每次执行不同的golang的时候,浏览器会记住旧的情况,所以需要删除缓存,方可以完成。这一点,不知道为什么。在学习golang的时候有点疑惑。

完成后,可以鼠标右键对一个文件夹实现一个web目录的预览了。当白鹭打包后的web程序想运行,不妨可以试试这个方法。其实也可以把相应的程序丢到xampp tomcat等服务器中去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值