golangで作成時間を変更する方法

PHPz
リリース: 2023-04-23 16:55:20
オリジナル
851 人が閲覧しました

Golang は、他のプログラミング言語と同様、オペレーティング システムと対話できる人気のあるプログラミング言語です。オペレーティング システムは、ファイルの作成時間 (Created Time) の読み取りや変更など、ファイルを操作するためのいくつかのシステム コールを提供します。

Golang では、os パッケージを使用して、作成時刻を含むファイルのメタデータにアクセスして変更できます。以下は簡単な例です:

package main

import (
    "fmt"
    "os"
)

func main() {
    // 打开一个文件
    file, err := os.OpenFile("test.txt", os.O_RDWR, 0666)
    if err != nil {
        fmt.Println(err)
        return
    }
    defer file.Close()

    // 修改文件的创建时间(Created Time)
    err = file.Truncate(0)
    if err != nil {
        fmt.Println(err)
    }

    // 获取最新的文件信息
    fileInfo, err := file.Stat()
    if err != nil {
        fmt.Println(err)
        return
    }
    createdAt := fileInfo.ModTime()
    fmt.Println("文件创建时间:", createdAt)
}
ログイン後にコピー

上記のコードでは、まず「test.txt」という名前のファイルを開き、次に OS パッケージの File.Truncate() メソッドを使用してサイズを次のようにします。 0に切り捨てられます。この操作はファイルの内容には影響しませんが、ファイルの変更時刻と作成時刻が現在の時刻に更新されます。

次に、File.Stat() メソッドを使用して最新のファイル情報を取得します。このメソッドは、ファイルのさまざまなメタデータ情報を含む os.FileInfo 型の構造体を返します。 FileInfo.ModTime() メソッドを使用してファイルの変更時刻を取得し、コンソールに出力できます。

これまでのところ、ファイルの作成時刻は正常に変更されました。もちろん、ファイルのサイズを変更したくない場合は、File.Write() メソッドを直接使用してファイルにデータを書き込むこともできます。

ファイルを変更する前に、プログラムがファイルを操作するための十分な権限を持っていることを確認する必要があります。権限がない場合は、os.Chmod() メソッドを使用してファイルの権限ビットを変更する必要があります。例:

// 修改文件的权限
err = os.Chmod("test.txt", 0777)
if err != nil {
    fmt.Println(err)
    return
}
ログイン後にコピー

上記のコードは、「test.txt」ファイルのアクセス許可を 0777 に変更します。これは、ユーザー、グループ、およびその他のユーザーが読み取り、書き込み、および実行のアクセス許可を持っていることを意味します。この権限設定はセキュリティ上のリスクを引き起こす可能性があるため、注意して使用する必要があることに注意してください。

一般に、Golang は、ファイルのメタデータの変更など、ファイルを操作するための豊富なライブラリを提供します。 OS パッケージのメソッドを使用して、ファイルの作成時間、変更時間、権限、その他の情報を読み取りまたは変更できます。これらのメソッドを使用する前に、ファイル操作に対する十分なアクセス許可があることを確認する必要があります。アクセス許可がない場合、コードはエラーをスローします。

以上がgolangで作成時間を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート