小编E23*_*235的帖子

无法读取另一个进程正在使用的文件中的所有行

我正在尝试读取某个程序正在使用的所有日志文件行。

当我尝试这样做时,我收到异常:

System.IO.IOException was unhandled  : file used by another process
Run Code Online (Sandbox Code Playgroud)

所以我在网上搜索并找到了许多解决方案:
C# 异常。另一个进程
正在使用文件 读取另一个进程正在使用的日志
文件 在 C# 中读取锁定文件的侵入性最小的方法是什么(可能在不安全模式下)?
C#进程无法访问文件''',因为它正在被另一个进程使用
文件正在被另一个进程使用
http://coding.infoconex.com/post/2009/04/21/How-do-I-open -a-file-that-is-in-use-in-C

常见的解决方案是使用using包装FileStream和添加FileShare.ReadWrite.

我尝试了这些解决方案,但我仍然收到另一个进程正在使用该文件的异常。

在我下面的代码中,我打开文件D:\process.log以使用该文件(用于测试),然后尝试打开该文件。
例外是在行:

 using (FileStream fileStream = File.Open(i_FileNameAndPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
Run Code Online (Sandbox Code Playgroud)

代码:

 private void openToolStripMenuItem_Click(object sender, EventArgs e)
    {
        OpenFileDialog openFileDialog = new OpenFileDialog();

        DialogResult dialogResult = openFileDialog.ShowDialog();
        if (dialogResult == DialogResult.OK)
        {
          listView.Items.Clear();
          File.Open(@"D:\process.log", FileMode.Open);  //make the file being used …
Run Code Online (Sandbox Code Playgroud)

c# file

2
推荐指数
1
解决办法
6319
查看次数

如何使用内部@""@封装脚本,使用外部@""@

我有一个包含@""@在其中的脚本:

$myHtml = @" 
<html>
...
</html>
"@
Run Code Online (Sandbox Code Playgroud)

我想将所有这个脚本转换为字符串@""@转换为变量.

这是我试过的:

$string = @"

$myHtml = @" 
<html>
...
</html>
"@

"@
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:
在此输入图像描述

我可以通过读取字符串中的字节并将其转换为ASCII来执行解决方法:

# Read the entire file to an array of bytes.
$bytes = [System.IO.File]::ReadAllBytes("path_to_my_script")
# Convert to a text assuming ASCII encoding.
$text = [System.Text.Encoding]::ASCII.GetString($bytes)
Run Code Online (Sandbox Code Playgroud)

但我想学习如何用内部封装脚本@""@与外部@""@.

string powershell

2
推荐指数
1
解决办法
49
查看次数

如何使用单个命令在Dockerfile中输出多行字符串

我想在Dockerfile中输出以下文本:

  *****first row *****  
  *****second row *****    
Run Code Online (Sandbox Code Playgroud)

一种方法是这样做:

cat > Dockerfile <<EOF
FROM alpine:latest
RUN echo '  *****first row *****  ' >> /home/myfile
RUN echo '  *****second row *****  ' >> /home/myfile
ENTRYPOINT cat /home/myfile; sh;
WORKDIR /home
EOF  
Run Code Online (Sandbox Code Playgroud)

但是,如果我有100行,则需要花费时间,因为它分别运行每个命令并将其作为一层。

其他方式是这样的:

FROM alpine:latest
RUN printf '  *****first row *****  \n  *****second row *****  \n' >> /home/myfile
ENTRYPOINT cat /home/myfile; sh;
WORKDIR /home
Run Code Online (Sandbox Code Playgroud)

但我不喜欢它,因为它使可读性降低,尤其是当您有100行时。

我不知道有没有办法做这样的事情:

FROM alpine:latest
RUN echo '  *****first row *****  
            *****second row *****  ' >> /home/myfile
ENTRYPOINT cat …
Run Code Online (Sandbox Code Playgroud)

string bash multiline docker dockerfile

2
推荐指数
2
解决办法
4991
查看次数

如何防止“go build”更新模块的最新版本

我在一个大型项目中使用一个名为“ yaegi ”的开源项目。

\n

我需要使用旧版本的“yaegi”:,v.0.8.11所以我修改了go.mod文件并将:
\n替换github.com/traefik/yaegi v0.9.2 // indirectgithub.com/containous/yaegi v0.8.11
\n但是当我构建项目时,它开始更新所有模块并将其替换回最新版本:

\n
root@ubuntu:~/myproj1# go build main.go\ngo: finding module for package github.com/traefik/yaegi/stdlib/unsafe\ngo: finding module for package github.com/traefik/yaegi/stdlib\ngo: finding module for package github.com/traefik/yaegi/interp\ngo: found github.com/traefik/yaegi/interp in github.com/traefik/yaegi v0.9.2\n\n
Run Code Online (Sandbox Code Playgroud)\n

如何防止它并保留使用旧版本v.0.8.11
\n我根据https://tip.golang.org/cmd/go/#hdr-Maintaining_module_requirements读到

\n
\n

go命令本身会自动更新go.mod文件以保持标准格式和语句的准确性require

\n

任何找到不熟悉的导入的 go 命令都会查找包含该导入的模块,并自动将该模块的最新版本添加到 go.mod 中。[\xe2\x80\xa6]

\n

任何 go 命令都可以确定缺少模块要求,必须添加 [\xe2\x80\xa6]。

\n
\n

也许有办法绕过它?

\n

go go-build

2
推荐指数
1
解决办法
3380
查看次数

如何在单个 YAML 文件中创建多个角色

我正在尝试在单个 YAML 文件中的 Kubernetes 中创建多个角色。
我不确定是否可能。

这是我尝试过的:

cat > ~/tmp/Role.yaml <<EOF 
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata: 
  namespace: default
  name: testRole1
rules: 
- apiGroups: ["", "extensions", "apps"]
  resources: ["pods"]
  verbs: ["get", "list"] 

kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata: 
  namespace: default
  name: testRole2
rules: 
- apiGroups: ["", "extensions", "apps"]
  resources: ["pods"]
  verbs: ["get"] 
EOF

kubectl create -f ~/tmp/Role.yaml
Run Code Online (Sandbox Code Playgroud)

它只为我创造了后者 - testRole2

是否可以在一个 YAML 文件中执行此操作,或者我需要为每个角色创建 YAML 文件?

yaml role kubernetes

1
推荐指数
1
解决办法
806
查看次数

无法使用代码构建:“在此块中重新声明”

当我尝试构建 ( go build hello.go) 以下代码时:

// ~/go/src/myproj/hello.go
package main

import "fmt"

func main() {
    fmt.Printf("hello, world\n")
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

# runtime/internal/atomic
/usr/local/go/src/runtime/internal/atomic/atomic_amd64x.go:13:6: Load redeclared in this block
    previous declaration at /usr/local/go/src/runtime/internal/atomic/atomic_amd64.go:16:24
/usr/local/go/src/runtime/internal/atomic/atomic_amd64x.go:19:6: Loadp redeclared in this block
    previous declaration at /usr/local/go/src/runtime/internal/atomic/atomic_amd64.go:22:32
/usr/local/go/src/runtime/internal/atomic/atomic_amd64x.go:25:6: Load64 redeclared in this block
    previous declaration at /usr/local/go/src/runtime/internal/atomic/atomic_amd64.go:28:26
/usr/local/go/src/runtime/internal/atomic/atomic_amd64x.go:31:6: LoadAcq redeclared in this block
    previous declaration at /usr/local/go/src/runtime/internal/atomic/atomic_amd64.go:34:27
/usr/local/go/src/runtime/internal/atomic/atomic_amd64x.go:36:6: Xadd redeclared in this block
    previous declaration at /usr/local/go/src/runtime/internal/atomic/atomic_amd64.go:39:37
/usr/local/go/src/runtime/internal/atomic/atomic_amd64x.go:39:6: Xadd64 redeclared in this block
    previous declaration …
Run Code Online (Sandbox Code Playgroud)

compilation go

1
推荐指数
1
解决办法
2271
查看次数

如何验证 Zip 文件的 CRC-32 计算

我想验证我的 ZIP 文件是否具有正确的 CRC-32 校验和。
\n我读到,在 ZIP 文件中,CRC-32 数据位于字节 14 到 17 中:

\n
Offset  Bytes   Description[30]\n0        4  Local file header signature = 0x04034b50 (read as a little-endian number)\n4        2  Version needed to extract (minimum)\n6        2  General purpose bit flag\n8        2  Compression method\n10       2  File last modification time\n12       2  File last modification date\n14       4  CRC-32 of uncompressed data\n18       4  Compressed size\n22       4  Uncompressed size\n26       2  File name length (n)\n28       2  Extra field length (m)\n30       n  File name\n30+n     m  Extra field …
Run Code Online (Sandbox Code Playgroud)

zip crc32 checksum crc

1
推荐指数
1
解决办法
9903
查看次数

标签 统计

go ×2

string ×2

bash ×1

c# ×1

checksum ×1

compilation ×1

crc ×1

crc32 ×1

docker ×1

dockerfile ×1

file ×1

go-build ×1

kubernetes ×1

multiline ×1

powershell ×1

role ×1

yaml ×1

zip ×1