标签: filesystem-access

没有提示,将图像保存到硬盘?

我用twitter.有些人的推文包含照片,我想保存它们.

我检查了ifttt,其中twitter不是触发器.因此,ifttt无法帮助我做到这一点.

一个想法可能是使用JavaScript.我使用Firefox并安装了Greasemonkey.我可以写一个在twitter网站上运行的Greasemonkey脚本(JavaScript).点击"转发"链接或我的脚本添加的其他按钮后,我的脚本会检查推文的内容,找到照片的网址,然后将其保存到我的磁盘中.

一个问题是如何保存图像.我搜索了互联网.一些使用win.document.execCommand("SaveAs"),它将显示"另存为"窗口.现在窗口显示,为什么不直接单击图像并选择手动保存?所以我不喜欢这种方法.

有什么建议?

javascript greasemonkey filesystem-access userscripts tampermonkey

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

将PDF文件从Web-App写入USB-Stick

我担心这样做的可行性:在预配置的机器上,我将预安装一个Web应用程序,在Apache-Suite旁边.所以客户端和服务器是一样的!

在此Web应用程序中,用户可以 PDF文件拖放到USB图标.
然后,Web应用程序应将删除的PDF写入附加的USB-Stick.

我从来没有做过这样的事情(写入USB),所以我相当不安全.我很清楚有关JavaScript和Filesystem-Access的浏览器限制,但......

在研究了一下后我发现,可能有一些可能的和
相关的(我是一个Web平台 - Guy)解决方案:

  • 制作具有USB权限的" Chrome应用程序 " (这真的有用吗?)
  • 使用PHP查找USB然后写入它(如何在Windows下工作?)
  • 使用一些Flash作为中间人(不是首选)

现在我想知道:

  1. 有没有人提到过前面提到的可能性?
  2. 有没有人做过类似的事情?它有用吗?你选择了哪条路?
  3. 我怎么知道USB安装在哪个驱动器上,我怎样才能确定?
  4. 有什么其他可能解决这个问题的方法吗?

javascript usb fwrite filesystem-access web

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

访问给定文件夹中的所有文件(文件系统访问 API)

我可以使用文件系统访问 API ( https://web.dev/file-system-access/ ) 在网站内创建类似文件资源管理器的东西 (react)。

我计划制作一个简单的在线文件资源管理器,让您浏览打开一个文件夹,然后让您浏览该文件夹、播放视频和 MP3。

(我知道几年前这是不可能的,因为 js 不可能访问本地存储中的任何内容,我只是想知道是否有任何更改。如果文件系统访问 API 不是可行的方法,您能否建议一些更好的方法来从文件夹中读取批量本地文件。)

javascript filesystem-access html5-filesystem reactjs file-system-access-api

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

为什么Linux在目录而不是read()上使用getdents()?

我正在浏览K&R C,我注意到要阅读目录中的条目,他们使用:

while (read(dp->fd, (char *) &dirbuf, sizeof(dirbuf)) == sizeof(dirbuf))
    /* code */
Run Code Online (Sandbox Code Playgroud)

dirbuf系统特定的目录结构和dp->fd有效的文件描述符在哪里.在我的系统上,dirbuf本来是一个struct linux_dirent.请注意,a struct linux_dirent具有用于条目名称的灵活数组成员,但是为了简单起见,我们假设它没有.(在这种情况下处理灵活的阵列成员只需要一些额外的样板代码).

但是,Linux不支持这种结构.当read()用于尝试如上所述读取目录条目时,read()返回-1errno设置为EISDIR.

相反,Linux专门用于读取目录的getdents()系统调用,即系统调用.但是,我注意到它的工作方式与上面几乎相同.

while (syscall(SYS_getdents, fd, &dirbuf, sizeof(dirbuf)) != -1)
    /* code */
Run Code Online (Sandbox Code Playgroud)

这背后的理性是什么?与read()在K&R中使用相比,似乎没有什么好处或没有好处.

c unix architecture linux filesystem-access

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

是什么导致 DriveInfo.IsReady 为 false?

情况

我正在调试一些对目录路径执行一些存在检查的遗留代码。首先,DirectoryPathA如果存在则检查并返回。这应该是通常的情况。如果失败,DirectoryPathB则检查并返回。(如果这也失败了,其他事情就会发生,而不是这个问题的一部分)。代码如下所示:

if (!string.IsNullOrEmpty(DirectoryPathA))
{
    driveInfo = new DriveInfo(DirectoryPathA);
    if (driveInfo.IsReady)
    {
        dInf = new DirectoryInfo(DirectoryPathA);
        if (dInf.Exists)
        {
            return DirectoryPathA;
        }
    }
}

if (!string.IsNullOrEmpty(DirectoryPathB))
{
    dInf = new DirectoryInfo(DirectoryPathB);
    if (dInf.Exists)
    {
        return DirectoryPathB;
    }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,第一个检查有一个基于 的额外保护DriveInfo.IsReady。之前网络上的文件访问存在问题,所以我的假设是(同样,这是遗留代码)DirectoryPathB如果DirectoryPathA不可用,则引入它作为替代方案。我不知道为什么没有DriveInfo.IsReadyDirectoryPathB.

问题

即使DirectoryPathA是本地目录(因此不会出现网络中断),上面的代码也会偶尔返回DirectoryPathB. 代码被执行多次并被假定为幂等的,但事实并非如此,这会破坏事情。这只是在几个小时内在某些机器上偶尔发生。我无法重现该问题。

驱动器状态在整个程序执行过程中永远不会改变的假设存在一个基本问题。我明白那个。但是,这段代码在大多数情况下似乎都很好,而且过去一直如此。

什么原因DriveInfo.IsReadyfalse

该文件指出

true如果驱动器已准备好;false如果驱动器未准备好。

谢天谢地。备注部分添加

IsReady 指示驱动器是否准备就绪。例如,它指示 CD 是否在 …

c# directory drive contention filesystem-access

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

仅将文件夹的访问权限设置为一个用户

我想使用C#将单个用户的权限分配给Windows中的文件夹,其他用户不应该能够打开或更改该文件夹的访问权限.

例如,如果我有3个用户 - 用户组中的UserA,UserB和UserC.我想授予仅访问UserA的文件夹的权限.如果我拒绝访问用户组并允许UserA,则拒绝权限将优先,并且对UserA的访问也将被拒绝.

解决这个问题的方法是拒绝Userb和Userc,并允许UserA访问该文件夹.但如果在设置用户帐户创建的权限后,该新帐户将拥有该文件夹的权限,则会出现问题.我不想有这种情况.

谢谢,Sujith

c# filesystem-access

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

C#.Net在迭代大量文件时冻结

我有一个问题,我编写了一个应用程序,它将迭代文件并为每个文件的整数添加+1,直到它达到特定的文件名.问题可能是因为.Net不直接访问本机文件系统,它填满了集合,但在我的情况下需要几年时间,相信我,我在目标文件夹中有26万个文件.迭代甚至没有到达第二个文件.线程完全冻结,没有错误,没有例外.那么有没有办法直接访问本机文件系统而没有任何无用的集合填充?

这是我的代码:

private void button1_Click(object sender, EventArgs e)
{
    try
    {
        foreach (string file in Directory.GetFiles("\\\\Mypcname-PC\\vxheaven\\malware"))
        {
            count++;
            label1.Text = Convert.ToString(count);
            if (file.Contains(textBox1.Text))
            {
                label1.Text = Convert.ToString(count) + " reached the file";
                break;
            }
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句.对不起,我的英语不好

问候

c# iteration freeze filesystem-access

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