1 Star 5 Fork 4

张奇峰/fastdfs_client_go

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
file_struct_info.go 1.44 KB
一键复制 编辑 原始数据 按行查看 历史
张奇峰 提交于 2022-02-27 18:06 . 初始化
package fastdfs_client_go
import (
"errors"
"os"
)
// 文件结构信息(通过文件名上传、或者通过字节上传文件使用)
type fileInfo struct {
filePtr *os.File // 文件指针
fileExtName string // 文件扩展名
fileSize int64 // 文件大小
buffer []byte // 文件字节(文件内容本身)
}
// 通过文件名获取文件信息
func getFileInfoByFileName(fileName string) (*fileInfo, error) {
if fileName != "" {
file, err := os.OpenFile(fileName, os.O_RDONLY, 0755)
if err != nil {
return nil, err
}
stat, err := file.Stat()
if err != nil {
return nil, err
}
if int(stat.Size()) == 0 {
return nil, errors.New(fileName + ERROR_FILE_SIZE_IS_ZERO)
}
return &fileInfo{
fileSize: stat.Size(),
filePtr: file,
buffer: nil,
fileExtName: getFileExtNameStr(fileName),
}, nil
} else {
return nil, errors.New(ERROR_FILE_FILENAME_IS_EMPTY)
}
}
// 通过文件字节获取文件信息
func getFileInfoByFileByte(buffer []byte, fileExtName string) (*fileInfo, error) {
if len(buffer) == 0 {
return nil, errors.New(ERROR_FILE_SIZE_IS_ZERO)
}
if len(fileExtName) == 0 {
return nil, errors.New(ERROR_FILE_EXT_NAME_IS_EMPTY)
}
return &fileInfo{
filePtr: nil,
fileSize: int64(len(buffer)),
buffer: buffer,
fileExtName: fileExtName,
}, nil
}
// 关闭文件
func (c *fileInfo) Close() {
if c.filePtr != nil {
_ = c.filePtr.Close()
}
return
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/daitougege/fastdfs_client_go.git
git@gitee.com:daitougege/fastdfs_client_go.git
daitougege
fastdfs_client_go
fastdfs_client_go
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385