golang最简单的http文件服务

源码

package main

import (
	"fmt"
	"net/http"
	"os"
	"os/exec"
	"path/filepath"
	"strings"
)

func PathExists(path string) (bool, error) {
	_, err := os.Stat(path)
	if err == nil {
		return true, nil
	}
	if os.IsNotExist(err) {
		return false, nil
	}
	return false, err
}

func GetCurrPath() string {
	file, _ := exec.LookPath(os.Args[0])
	path, _ := filepath.Abs(file)
	splitstring := strings.Split(path, "\\")
	size := len(splitstring)
	splitstring = strings.Split(path, splitstring[size-1])
	ret := strings.Replace(splitstring[0], "\\", "/", size-1)
	return ret
}

func FileExists(path string) (bool, error) {
	_, err := os.Stat(path)
	if err == nil {
		return true, nil
	}
	if os.IsNotExist(err) {
		return false, nil
	}
	return false, err
}

func main()  {
	fmt.Println(GetCurrPath())
	path:="file"
	file:="gaoliwenfile.txt"
	exist,e:=PathExists(path)
	if(!exist){
		e=os.Mkdir("file",0777)
	}

	exist,e=FileExists(path+"/"+file)
	if(!exist){
		f,_:=os.Create(path+"/"+file)
		_,e=f.WriteString(fmt.Sprintf("hello world!!!"))
		e=f.Close()
	}

	http.Handle("/", http.FileServer(http.Dir("file")))
	e=http.ListenAndServe(":8888",nil)
	if e!=nil{
		fmt.Println(e.Error())
	}
}

目录结构

测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值