第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在 Windows/Mac/Linux 中創(chuàng)建隱藏文件?

如何在 Windows/Mac/Linux 中創(chuàng)建隱藏文件?

Go
Helenr 2023-06-01 14:33:55
我構(gòu)建了一個(gè)控制臺(tái)應(yīng)用程序,需要?jiǎng)?chuàng)建一些隱藏文件。我也知道以點(diǎn)開頭的文件名將隱藏在 Linux 和 mac 中,但是 Windows?設(shè)置文件屬性?有沒有辦法在 Windows / Linux / Mac 中創(chuàng)建隱藏文件和目錄?
查看完整描述

4 回答

?
慕絲7291255

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊

視窗:

SetFileAttributesW 函數(shù)

設(shè)置文件或目錄的屬性。

FILE_ATTRIBUTE_HIDDEN ? ?2 (0x2)

文件或目錄被隱藏。它不包含在普通目錄列表中。


去:

包系統(tǒng)調(diào)用

函數(shù) SetFileAttributes

func?SetFileAttributes(name?*uint16,?attrs?uint32)?(err?error)

從 Go UTF-8 編碼字符串 (?string) 轉(zhuǎn)換為 Windows UTF-16 編碼字符串指針 (?*uint16)。

包系統(tǒng)調(diào)用

函數(shù) UTF16PtrFromString

func?UTF16PtrFromString(s?string)?(*uint16,?error)

UTF16PtrFromString 返回指向 UTF-8 字符串 s 的 UTF-16 編碼的指針,并添加了終止 NUL。如果 s 在任何位置包含 NUL 字節(jié),則返回 (nil, EINVAL)。


使用操作系統(tǒng)構(gòu)建約束。


例如,

hide/attrib.go:

package main


import (

? ? "fmt"

? ? "io/ioutil"

? ? "os"

)


func main() {

? ? filename := `test.hidden.file`

? ? os.Remove(filename)

? ? os.Remove("." + filename)

? ? err := ioutil.WriteFile(filename, []byte(filename), 0666)

? ? if err != nil {

? ? ? ? fmt.Fprintln(os.Stderr, err)

? ? ? ? return

? ? }

? ? err = HideFile(filename)

? ? if err != nil {

? ? ? ? fmt.Fprintln(os.Stderr, err)

? ? ? ? return

? ? }

? ? fmt.Println("hidden:", filename)

}

hide/hide.go:


// +build !windows


package main


import (

? ? "os"

? ? "path/filepath"

? ? "strings"

)


func HideFile(filename string) error {

? ? if !strings.HasPrefix(filepath.Base(filename), ".") {

? ? ? ? err := os.Rename(filename, "."+filename)

? ? ? ? if err != nil {

? ? ? ? ? ? return err

? ? ? ? }

? ? }

? ? return nil

}

hide/hide_windows.go:


// +build windows


package main


import (

? ? "syscall"

)


func HideFile(filename string) error {

? ? filenameW, err := syscall.UTF16PtrFromString(filename)

? ? if err != nil {

? ? ? ? return err

? ? }

? ? err = syscall.SetFileAttributes(filenameW, syscall.FILE_ATTRIBUTE_HIDDEN)

? ? if err != nil {

? ? ? ? return err

? ? }

? ? return nil

}

輸出(Linux):


$ tree hide

hide

├── attrib.go

├── hide.go

└── hide_windows.go

$


$ go build && ./hide

hidden: test.hidden.file

$ ls -a .test.hidden.file

.test.hidden.file

$?

輸出(視窗):


>go build && hide

hidden: test.hidden.file

>attrib test.hidden.file

A? ?H? ? ? ? \test.hidden.file

>


查看完整回答
反對(duì) 回復(fù) 2023-06-01
?
千萬里不及你

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊

制作一個(gè)這樣的文件:


//go:generate mkwinsyscall -output zhide.go hide.go

//sys setFileAttributes(name string, attr int) (err error) = kernel32.SetFileAttributesW

package main


const (

   file_attribute_hidden = 2

   file_attribute_normal = 128

)


func main() {

   setFileAttributes("file.txt", file_attribute_hidden)

}

然后構(gòu)建:


go mod init hide

go mod tidy

go generate

go build


查看完整回答
反對(duì) 回復(fù) 2023-06-01
?
楊__羊羊

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊

我為此制作了一個(gè)跨平臺(tái)模塊(可在此處獲得:higgs)。您只需調(diào)用或Hide函數(shù)即可隱藏或取消隱藏文件或目錄Unhide。


示例代碼:


package main


import (

    "fmt"

    "github.com/dastoori/higgs"

)


func main() {

    err := higgs.Hide("foo.txt")

    

    if err != nil {

        fmt.Println(err)

    }

}


查看完整回答
反對(duì) 回復(fù) 2023-06-01
?
胡子哥哥

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊

import (

    _ "golang.org/x/sys/windows"

    "os"

    "runtime"

    "syscall"

)


func HideFile(filename string) (status bool, err error) {

    if runtime.GOOS == "windows" {

        filenameW, err := syscall.UTF16PtrFromString(filename)

        if err != nil {

            return false, err

        }


        err = syscall.SetFileAttributes(filenameW, syscall.FILE_ATTRIBUTE_HIDDEN)

        if err != nil {

            return false, err

        }

    } else {

        if filename[0:1] != "." {

            err = os.Rename(filename, "." + filename)

            if err != nil {

                return false, err

            }

        }

    }


    return true, nil

}

那是我的代碼。但是無法在Linux中構(gòu)建。


錯(cuò)誤:


src/util/hidden.go:12:21: undefined: syscall.UTF16PtrFromString

src/util/hidden.go:17:9: undefined: syscall.SetFileAttributes

src/util/hidden.go:17:46: undefined: syscall.FILE_ATTRIBUTE_HIDDEN


查看完整回答
反對(duì) 回復(fù) 2023-06-01
  • 4 回答
  • 0 關(guān)注
  • 281 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)