


Ralat 'pengendali tidak sah' semasa memanggil GetFileInformationByHandle dengan pemegang yang dimulakan dengan GetFileVersionInfoSize
editor php Yuzai mengalami ralat "pengendali tidak sah" semasa memanggil GetFileInformationByHandle menggunakan pemegang yang dimulakan oleh GetFileVersionInfoSize. Ralat ini biasanya disebabkan oleh pemegang tidak mengenal pasti maklumat fail dengan betul. Terdapat beberapa cara untuk menyelesaikan masalah ini, seperti menyemak sama ada pemegang dimulakan dengan betul, mengesahkan bahawa laluan fail adalah betul dan menyemak sama ada fail telah diduduki oleh proses lain. Melalui penyiasatan dan pemprosesan yang teliti, masalah ini dapat diselesaikan dan maklumat fail dapat diperoleh dengan lancar.
Kandungan soalan
Saya cuba mendapatkan maklumat fail, termasuk masa penciptaan fail, secara pengaturcaraan menggunakan go on windows.
Saya golang.org/x/sys/windows
中发现一个函数,它返回有关何时创建文件的信息,该函数是 getfileinformationbyhandle
(go 文档、windows api 文档)。但是,我使用此函数编写的代码给了我一个 the handle is invalid
salah.
Ini kod saya:
package main import ( "log" "os" "golang.org/x/sys/windows" ) func main() { name := `c:\windows\system32\cmd.exe` fileinfo, err := os.stat(name) if err != nil { log.fatalf("unable to stat %s: %s", name, err.error()) } log.printf("%s has base name %s.\n", name, fileinfo.name()) var handle windows.handle _, err = windows.getfileversioninfosize(name, &handle) if err != nil && err != windows.error_file_not_found && err != windows.error_resource_type_not_found { log.fatalf("getfileversioninfosize error: path: %s %s", name, err.error()) } var hndlfileinfo windows.byhandlefileinformation err = windows.getfileinformationbyhandle(handle, &hndlfileinfo) if err != nil { if err == windows.error_invalid_handle { // https://learn.microsoft.com/en-us/windows/win32/debug/system-error-codes--0-499- log.println("error is invalid handle error.") } log.fatalf("getfileinformationbyhandle error: path: %s %s", name, err.error()) } log.println("success!") }
Apabila saya menjalankannya, saya mendapat output berikut:
2023/01/11 14:43:19 c:\windows\system32\cmd.exe has base name cmd.exe. 2023/01/11 14:43:19 error is invalid handle error. 2023/01/11 14:43:19 getfileinformationbyhandle error: path: c:\windows\system32\cmd.exe the handle is invalid.
Saya telah mengesahkan bahawa laluan fail adalah sah (ditambah dengan panggilan os.stat
tidak mengembalikan ralat):
Saya tahu direktori system32 tidak kelihatan kepada program windows 32-bit, tetapi saya telah mengesahkan bahawa boleh laku saya ialah program 64-bit menggunakan alat file
pada git-bash:
$ file win_handle_test.exe win_handle_test.exe: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows
Memandangkan laluan itu sepatutnya sah, bolehkah saya melakukan sesuatu yang salah yang menyebabkan saya mendapat pemegang yang tidak sah?
Penyelesaian
Berdasarkan jawapan ini, saya menemui cara lain untuk mendapatkan masa penciptaan:
package main import ( "log" "os" "time" "syscall" ) func main() { name := `c:\windows\system32\cmd.exe` fileinfo, err := os.stat(name) if err != nil { log.fatalf("unable to stat %s: %s", name, err.error()) } log.printf("%s has base name %s.\n", name, fileinfo.name()) data := fileinfo.sys().(*syscall.win32fileattributedata) ctime := time.unix(0, data.creationtime.nanoseconds()) log.printf("ctime in utc : %v\n", ctime.utc()) log.printf("ctime in local timezone: %v\n", ctime) }
Keluaran:
2023/01/11 15:03:58 C:\Windows\System32\cmd.exe has base name cmd.exe. 2023/01/11 15:03:58 cTime in UTC : 2022-05-10 17:34:57.9429156 +0000 UTC 2023/01/11 15:03:58 cTime in local timezone: 2022-05-10 13:34:57.9429156 -0400 EDT
Output ini sepadan dengan masa penciptaan dalam paparan sifat fail.
Walaupun filetime
time.unix
和 nanoseconds
itu sendiri bermula dari 1 Januari 1601 UTC, time.unix dan nanosaat Fungsi
Atas ialah kandungan terperinci Ralat 'pengendali tidak sah' semasa memanggil GetFileInformationByHandle dengan pemegang yang dimulakan dengan GetFileVersionInfoSize. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Bitcoin, sebagai mata wang kripto, telah mengalami turun naik pasaran yang ketara sejak penubuhannya. Artikel ini akan memberikan gambaran keseluruhan harga sejarah Bitcoin sejak kelahirannya untuk membantu pembaca memahami arah aliran harga dan detik pentingnya. Dengan menganalisis data harga sejarah Bitcoin, kami dapat memahami penilaian pasaran terhadap nilainya, faktor yang mempengaruhi turun naiknya, dan menyediakan asas untuk keputusan pelaburan masa hadapan.

Sejak penciptaannya pada tahun 2009, harga Bitcoin telah mengalami beberapa turun naik utama, meningkat kepada $ 69,044.77 pada November 2021 dan jatuh ke $ 3,191.22 pada Disember 2018. Sehingga Disember 2024, harga terkini telah melebihi $ 100,204.

Harga USD Bitcoin masa nyata Faktor yang menjejaskan harga bitcoin Petunjuk untuk meramalkan harga bitcoin masa depan Berikut adalah beberapa maklumat penting mengenai harga Bitcoin pada 2018-2024:

Ya, pengeluaran halaman H5 adalah kaedah pelaksanaan penting untuk pembangunan front-end, yang melibatkan teknologi teras seperti HTML, CSS dan JavaScript. Pemaju membina halaman H5 yang dinamik dan berkuasa dengan bijak menggabungkan teknologi ini, seperti menggunakan & lt; kanvas & gt; Tag untuk menarik grafik atau menggunakan JavaScript untuk mengawal tingkah laku interaksi.

Kaedah penyesuaian simbol saiz semula dalam CSS bersatu dengan warna latar belakang. Dalam perkembangan harian, kita sering menghadapi situasi di mana kita perlu menyesuaikan butiran antara muka pengguna, seperti menyesuaikan ...

Mengenai sebab-sebab dan penyelesaian untuk memaparkan unsur-unsur blok sebaris. Apabila menulis susun atur laman web, kami sering menghadapi masalah paparan yang kelihatan aneh. Bandingkan ...

Cara menggunakan JavaScript atau CSS untuk mengawal bahagian atas dan akhir halaman dalam tetapan percetakan penyemak imbas. Dalam tetapan percetakan penyemak imbas, ada pilihan untuk mengawal sama ada paparan ...

Masalah pembukaan kontena kerana peninggalan teks yang berlebihan di bawah susun atur flex dan penyelesaian digunakan ...
