func FileTimeModified(filename string) time.Time {
	info, err := os.Stat(filename)
	if err != nil {
		return time.Time{}
	}
	return info.ModTime()
}
func FileTimeModified(filename string) time.Time {
	info, err := os.Stat(filename)
	if err != nil {
		return time.Time{}
	}
	return info.ModTime()
}
func FileTimeModified ( filename string ) time . Time { info , err := os . Stat ( filename ) if err != nil { return time . Time { } } return info . ModTime ( ) }
// func FileTail(filenameOrURL string, numLines int, timeout ...time.Duration) (lines []string, err error) {
// 	if strings.Index(filenameOrURL, "file://") == 0 {
// 		filenameOrURL = filenameOrURL[len("file://"):]
// 	} else if strings.Contains(filenameOrURL, "://") {
// 		data, err := FileGetBytes(filenameOrURL, timeout...)
// 		if err != nil {
// 			return nil, err
// 		}
// 		lines, _ := BytesTail(data, numLines)
// 		return lines, nil
// 	}
// 	// data := make([]byte, 0, 1024*256)
// 	// file, err := os.Open(filenameOrURL)
// 	// if err != nil {
// 	// 	return nil, err
// 	// }
// 	// defer file.Close()
// 	// info, err := file.Stat()
// 	// if err != nil {
// 	// 	return nil, err
// 	// }
// 	// if start := info.Size() - 64*1024; start > 0 {
// 	// 	file.Seek(start, os.SEEK_SET)
// 	// }
// 	// data, err = ioutil.ReadAll(file)
// 	// if err != nil {
// 	// 	return nil, err
// 	// }
// 	return lines, nil
// }
// FileTimeModified returns the modified time of a file,
// or the zero time value in case of an error.
func FileTail ( filenameOrURL string numLines int timeout ... time . Duration ) ( lines [] string err error ) { if strings . Index ( filenameOrURL file : // ) == 0 { filenameOrURL = filenameOrURL [ len ( file : // ) : ] } else if strings . Contains ( filenameOrURL : // ) { data err : = FileGetBytes ( filenameOrURL timeout ... ) if err ! = nil { return nil err } lines _ : = BytesTail ( data numLines ) return lines nil } // data : = make ( [] byte 0 1024 * 256 ) // file err : = os . Open ( filenameOrURL ) // if err ! = nil { // return nil err // } // defer file . Close () // info err : = file . Stat () // if err ! = nil { // return nil err // } // if start : = info . Size () - 64 * 1024 ; start > 0 { // file . Seek ( start os . SEEK_SET ) // } // data err = ioutil . ReadAll ( file ) // if err ! = nil { // return nil err // } return lines nil } FileTimeModified returns the modified time of a file or the zero time value in case of an error .