标签: createfile

如何使用纯c或linux-shell或dos-commands创建超大文件?

我的操作系统和驱动器是

OS: Windows XP sp2 or Linux SUSE 9 or Cygwin
Compiler: Visual C++ 2003 or Gcc or Cygwin
PC and os are both 32 bits
Run Code Online (Sandbox Code Playgroud)

那么,如何在秒中创建一个超大文件

有人告诉我使用MappingFile函数.我没能创建超过2G的文件所以...你的热烈回应将非常感谢谢谢

linux windows createfile

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

COM端口的设备仿真

我有一个设备将数据发送到COM端口.我想在没有插入时模拟这个设备.我认为这可以通过简单地将数据发送到特定的COM端口来实现:

int main() {
    char *port = "\\\\.\\COM40";

    HANDLE hCom = CreateFile(port, GENERIC_READ | GENERIC_WRITE,
        FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
    if (hCom==INVALID_HANDLE_VALUE) return 0;

    DWORD writeBytes;
    int buffer = 0xDEADBEAF;
    BOOL success = WriteFile(hCom, &buffer, 4, &writeBytes, NULL);

    FlushFileBuffers(hCom);
    Sleep(1000);

    HANDLE hCom2 = CreateFile(port, GENERIC_READ | GENERIC_WRITE,
        FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
    if (hCom2==INVALID_HANDLE_VALUE) return 0; // Exit. GetLastError() == 5

    DWORD readBytes;
    success = ReadFile(hCom2, &buffer, 4, &readBytes, NULL);

    CloseHandle(hCom);
    CloseHandle(hCom2);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用,第二个 …

c++ winapi createfile

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

使用CreateFile打开目录

我试图利用CreateFile函数来访问目录信息。我收到的Win32错误代码为5,这意味着访问被拒绝。请指教。

CreateFile(path, GENERIC_READ, FILE_SHARE_READ, IntPtr.Zero, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, IntPtr.Zero);
Run Code Online (Sandbox Code Playgroud)

这是正在进行的调用,如文档中所述,正在使用“ FILE_FLAG_BACKUP_SEMANTICS”。DLL导入似乎工作正常,如下所示:

[DllImport("kernel32.dll", SetLastError = true)]
public static extern IntPtr CreateFile(string filename,
                                    uint desiredAccess,
                                    uint sharedMode,
                                    IntPtr securityAttributes,
                                    uint creationDisposition,
                                    uint flagsAndAttributes,
                                    IntPtr templateFile);
Run Code Online (Sandbox Code Playgroud)

更新:我需要获取目录的句柄,以便可以使用GetFileInformationByHandle()并提取唯一的ID。该方法当前适用于文件,当前不适用于目录。

更新:这个问题的X是我需要一个目录的唯一标识符,该标识符不是其绝对路径。即使目录已移动或重命名,它也必须保持不变。如上所述,.NET不提供任何唯一标识符,只能使用win32来实现。

c# directory winapi createfile

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

使用php创建和下载文本文件

这就是我想要做的.我有一系列报告,他们也希望能够以逗号分隔的文本文件下载.我已经阅读过一堆页面,人们说这些页面只是回显结果而不是创建文件,但是当我尝试它只是输出到它们所在的页面时.

我以每份报告的形式提供此信息

Export File<input type="checkbox" name="export" value="1" />
Run Code Online (Sandbox Code Playgroud)

所以在帖子上我可以检查他们是否正在尝试导出文件.如果他们是我试图这样做:

if($_POST['export'] == '1')
{
    $filename = date("Instructors by DOB - ".$month) . '.txt';

    $content = "";

    # Titlte of the CSV
    $content = "Name,Address,City,State,Zip,DOB\n";

    for($i=0;$i<count($instructors);$i++)
        $content .= ""; //fill content

    fwrite($filename, $content);

    header("Cache-Control: public");
    header("Content-Description: File Transfer");
    header("Content-Length: ". filesize("$filename").";");
    header("Content-Disposition: attachment; filename=$filename");
    header("Content-Type: application/octet-stream; "); 
    header("Content-Transfer-Encoding: binary");

    readfile($filename);
}
Run Code Online (Sandbox Code Playgroud)

基本上页面刷新,但没有文件被推下载.任何人都可以指出我错过了什么?

编辑 我想我并不完全清楚.这不在仅创建和下载文件的页面上,这是在同时显示报告的页面上.所以当我放一个exit(); 在readfile之后,页面的其余部分加载空白.我还需要在此页面上显示报告.我认为这也可能与它为什么不下载有关,因为这个页面已经发送了头信息.

php download createfile

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

为什么在批处理程序的FOR循环中创建额外的文件?

我编写了以下批处理文件来使用FOR循环创建多个文件:

@echo off  
cls  
FOR /L %%i IN (1 1 10) DO (  
    echo.> file%%i.txt  
    IF ERRORLEVEL 0 echo Successfully created file 'file%%i.txt'.  
)  
dir /b *.txt  
FOR %%i IN (*.txt) DO (  
    echo.> file%%i.txt
    IF ERRORLEVEL 0 echo Successfully created file 'file%%i.txt'.  
)

这里,在第一个FOR循环中创建了10个文件(即file1.txt.... file10.txt).
在第二个FOR循环中,我使用这些文件来构建下一个新文件的名称.(即filefile1.txt.txt... filefile10.txt.txt)

但是,正在创建一个额外的文件: 导致创建这个额外文件的逻辑问题是什么?filefilefile1.txt.txt.txt

shell for-loop batch-file createfile

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

在linux上CreateFile CREATE_NEW等效

我写了一个尝试创建文件的方法.但是我设置了标志CREATE_NEW,因此它只能在它不存在时创建它.它看起来像这样:

for (;;)
  {
    handle_ = CreateFileA(filePath.c_str(), 0, 0, NULL, CREATE_NEW, FILE_ATTRIBUTE_HIDDEN | FILE_FLAG_DELETE_ON_CLOSE, NULL);
    if (handle_ != INVALID_HANDLE_VALUE)
      break;

    boost::this_thread::sleep(boost::posix_time::millisec(10));
  }
Run Code Online (Sandbox Code Playgroud)

这应该是正常的.现在我想把它移植到linux,当然CreateFile函数只适用于windows.所以我在寻找与此相当的东西,但在Linux上.我已经看过open()但是我似乎找不到像CREATE_NEW一样的标志.有谁知道这方面的解决方案?

c++ linux createfile

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

C Windows API - 在UnmapViewOfFile之前关闭文件句柄

我想知道是否这个代码片段:

HANDLE fhandle = CreateFile("something.c", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
HANDLE mapping = CreateFileMapping(fhandle, NULL, PAGE_READONLY, 0, 0, NULL);
LPVOID map_view = MapViewOfFile(mapping, FILE_MAP_READ, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)

以下释放对象的顺序有效:

CloseHandle(mapping);
CloseHandle(fhandle);
UnmapViewOfFile(contents);
Run Code Online (Sandbox Code Playgroud)

即我可以先关闭文件句柄然后再打电话UnmapViewOfFile吗?

我知道执行顺序CloseHandle(mapping)UnmapViewOfFile(contents)无关紧要,但是关闭文件句柄呢?

我问,因为我只想使用map_view析构函数的指针.在我看来,这是有效的,文件一直保持到UnmapViewOfFile调用,但也许这可能会导致一些奇怪的行为?

c winapi createfile file-mapping

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

如何在 Delphi 中创建文本文件

我有一个程序,用户可以在其中注册我的程序,并为他们创建一个文本文件。我尝试过使用 CreateFile 函数,但不确定参数。当每个用户使用此功能或任何其他功能注册时,如何为他们创建一个文本文件?

delphi file createfile

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

如何在CreateFile中打开卷的文件系统?

CreateFile上的MSDN页面说:该字符串"\\.\C:\"可用于打开C:卷的文件系统.但是,以下代码始终返回错误:ERROR_PATH_NOT_FOUND.

HANDLE h = CreateFile(L"\\\\.\\C:\\", FILE_READ_ATTRIBUTES, 
    FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, 0);
Run Code Online (Sandbox Code Playgroud)

我应该如何正确传递参数?

windows filesystems winapi runtime-error createfile

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

如何在 Golang 中将 *uint16 指针传递给 windows.CreateFile()

我正在尝试使用windows.CreateFile()函数创建文件(有关参考,请参阅https://godoc.org/golang.org/x/sys/windows#CreateFilehttps://docs.microsoft.com/en-us/windows/ win32/api/fileapi/nf-fileapi-createfilew ) 在 Golang 1.14 中。除了代码有效之外,我显然file NameCreateFile().

代码是:

package main

import (
    "unsafe"

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

func main() {
    var (
        nullHandle windows.Handle
        filename   string = "test_file"
    )

    strptr := &filename
    fileNamePtr := (*uint16)(unsafe.Pointer(strptr))
    dwShareMode := uint32(windows.FILE_SHARE_READ | windows.FILE_SHARE_WRITE | windows.FILE_SHARE_DELETE)
    dwFlagsAndAttributes := uint32(windows.FILE_FLAG_DELETE_ON_CLOSE)

    windows.CreateFile(fileNamePtr, windows.GENERIC_WRITE, dwShareMode, nil, windows.CREATE_NEW, dwFlagsAndAttributes, nullHandle)
}
Run Code Online (Sandbox Code Playgroud)

我得到了一个用非 ascii 字符创建的文件(在这种情况下?R

Directory of C:\Users\rodrigo\src\delete_on_close

04/30/2020  03:15 PM    <DIR>          .
04/30/2020  03:15 PM    <DIR>          ..
04/30/2020 …
Run Code Online (Sandbox Code Playgroud)

unsafe-pointers go createfile

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