问题标签 [fileshare]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# 文件读/写文件共享似乎不起作用
我的问题是基于继承大量我无法做的遗留代码。基本上,我有一个可以产生数据块的设备。一个库将调用设备来创建该数据块,出于某种原因,我不完全理解并且即使我想也无法更改,将该数据块写入磁盘。
此写入不是即时的,但最多可能需要 90 秒。在那个时候,用户想要获得正在生成的数据的部分视图,所以我想要一个消费者线程来读取另一个库正在写入磁盘的数据。
在我接触这个遗留代码之前,我想用我完全控制的代码来模拟这个问题。我使用 C#,表面上是因为它提供了很多我想要的功能。
在生产者类中,我有这段代码创建一个随机数据块:
到目前为止,一切都很好。此代码有效。当前版本(使用 FileStream 和 BinaryWriter)似乎与使用 File.Open 具有相同的选项和正在写入磁盘的 ushort[] 上的 BinaryFormatter 等效(尽管速度较慢,因为复制)。
但后来我添加了一个消费者线程:
现在,theNewArray 的声明可能会被破坏,并会导致某种读取溢出。但是,这段代码永远不会走得那么远,因为它总是总是在尝试打开新的 FileStream 时中断,并出现 System.IO.IOException 异常,表明另一个进程已打开该文件。
我正在按照 MSDN 上的 FileStream 文档中所述设置 FileAccess 和 FileShare 枚举,但似乎我无法做我想做的事情(即,在一个线程中写入,在另一个线程中读取)。我意识到这个应用程序有点不正统,但是当我涉及到实际设备时,我将不得不做同样的事情,但使用 MFC。
无论如何,我忘记了什么?我想要做的是否可能,因为它在文档中已尽可能指定?
谢谢!毫米波
c# - 在 C# 中读取隐藏共享
所以我有一个小型 C# 应用程序,它需要定期检查网络上多台机器上的目录内容。我以为我可以将 \hostname\C$ 读取为目录路径,但是对于普通的 Directory 类,似乎没有办法对其他服务器进行身份验证,因此您可以访问隐藏共享。我确信有一种简单的方法可以做到这一点,但我忽略了这一点,但目前我有点难过。
c# - 下载期间在 Windows Media Player 上播放大文件
我的问题是关于将视频文件写入从网络下载的硬盘驱动器并同时使用 Windows Media Player 播放它。该文件很大,需要一段时间才能下载。有必要下载它而不是直接将其流式传输到 Windows Media Player。
发生的情况是,虽然我可以从我自己的测试代码中写入视频文件并同时读取它,但使用 Windows Media Player 无法完成(至少我还没有弄清楚)。我知道这是可能的,因为 Amazon Unbox 下载做到了。Unbox 可让您在下载 WMV 时播放它们。Unbox 是用 .NET 编写的,所以......
我已经阅读了“ C# 文件读/写文件共享似乎不起作用”的问题和答案,用于打开带有 FileShare 标志的文件。但这对我不起作用。进程监视器说媒体播放器正在打开带有文件共享标志的文件,但它出错了。
在缓冲线程中,我有这段代码用于从网络读取文件并将其写入文件(没有错误处理或其他使其更具可读性的东西):
这似乎工作正常。该文件写入磁盘并具有正确的权限。
但是接下来是另一个线程中的事件处理程序,用于播放视频
Windows Media Player 指示它正在打开文件,然后停止并显示无法打开文件“已在另一个进程中打开”的错误。
我已经尝试了我能想到的一切。我错过了什么?如果亚马逊的人可以做到这一点,那么我也可以,对吗?
编辑:此代码适用于 mplayer、VLC 和 Media Player Classic;只是不是 Windows Media Player 或 Windows Media Center 播放器。IOW,我唯一需要他们合作的球员。啊!
edit2:我什至使用 MiniHttp 将视频流式传输到 Windows Media Player,看看这是否会“欺骗”WMP 播放正在下载的视频。无所事事。虽然 WMP 确实打开了文件,但它一直等到 mpeg 文件被完全复制后才开始播放。它是怎么知道的?
编辑3:经过一番挖掘,我发现了问题。我正在处理 MPEG2 文件。问题不一定与 Windows Media Player 相关,而是与 Microsoft MPEG2 DirectShow Splitter 相关,WMP 使用它来打开我试图同时播放和下载的 MPEG2 文件。拆分器以非共享模式打开文件。WMV 文件并非如此。WMP 以共享模式打开它们,一切都按预期工作。
iis - IIS 将虚拟目录移动到文件共享会破坏登录用户的模拟
我们有一个 IIS6 实例运行一个带有 Windows Authentication 和 Impersonate = true 的 Intranet 网站,因此它使用客户端浏览器传入的 NT 凭据。AppPool 设置为作为网络服务用户运行:serviceAcctX,以便我们可以在极少数情况下撤消模拟(读取或写入客户端用户无权访问的资源)
当虚拟目录的源位于本地驱动器上时,它可以完美运行。登录用户经过身份验证,页面内容根据授权设置进行自定义。
我们的基础架构团队正在尝试将虚拟目录源移动到远程服务器上的文件共享中。通过为特定文件共享路径添加完全信任,我们已经解决了更改 .Net 安全策略的问题。我们已将 Connect As 属性设置为相同的 serviceAcctX,即 AppPool 正在运行的那个。
该网站开始正常。但是,不会模拟客户端用户。使用默认的 serviceAcctX 凭据处理请求,而不是像以前那样使用客户端的 NT 凭据。
有没有办法让客户端模拟仍然像以前一样工作并且仍然在文件共享上拥有虚拟目录?非常感谢任何指针。
windows-server-2003 - Windows 2003 上没有共享选项卡
我在 Windows 2003 上的任何驱动器或文件夹属性中都看不到共享选项卡。我看过这里:
http://forums.tweakguides.com/showthread.php?t=5771
但是,在文件夹选项中没有禁用简单共享的选项,并且他们建议启动的服务(计算机浏览器、网络连接、服务器和工作站)不能解决问题。有任何想法吗?
c# - 在 C#/.NET 中访问超出 MAX_PATH 的文件
背景
我需要使用最高版本的 .NET 2.0 编写一个工具(出于政治、商业和机密性/信任的原因,此客户端不能使用现成的东西)通过网络将文件从一台服务器迁移到另一台服务器。服务器是本地团队的文件服务器,某些团队文件夹需要迁移到其他服务器以方便重组。基本思想是我们读取每个文件并在数小时内通过网络将其流式传输,几天后数据将被迁移。需要保留文件权限。由于这将需要几天时间(对于某些团队,我们正在讨论数 GB 的数据),我们需要每晚迭代文件并比较修改日期并更新已更改的文件。理论上,最终新服务器将拥有文件的最新副本,并且用户可以切换到新服务器。当然不是这么简单,但我们有一个我们认为应该可行的设计:)
问题
所以理论上我们只是打开文件,通过网络流式传输,然后在另一端写入,对吗?:)
不幸的是,在服务器本身上,文件共享是在文件夹路径中创建的,例如:
D:\Data\Team Shares\DIVISION\DEPARTMENT\团队名称 - 可能相当长\
对于每个用户,此路径都映射到一个驱动器,例如,它将作为 \\SERVER\TEAMNAME 共享并映射到 T: 驱动器。
这导致了从 T: 驱动器可见的文件在MAX_PATH
限制范围内的情况,但是当在服务器本身上本地查看时,它们远远超出了限制。我们无法使用网络共享访问文件,因为该工具需要通用,才能在数百个这样的服务器上运行,并且没有标准的方法来判断哪些文件共享是我们应该移动的,哪些不是 - 有甚至没有命名约定标准。另外,偶尔会有其他股份的子股份,所以我们MAX_PATH
两次超过限额!
我知道使用“\\?\”前缀指定路径的解决方法,它将路径视为 UNC 路径并允许理论上最多 32k 个字符。
此解决方法是在 Win32 API 级别实现的,System.IO 命名空间(大部分)基本上只是原生 Win32 API 函数的薄包装,但是微软在将调用交给 API 之前“有用地”实现了额外的(不正确的)验证. 在这种情况下,.NET Framework 拒绝该路径,因为它声称“?” 是无效的路径字符。
所以我的问题是......有没有一种我没有想到的方法可以让我解决这个问题,而不必完全重写几乎整个 System.IO 命名空间,进行大量 P/Invoke 调用,只是为了删除这个烦人的验证?
excel - 正则表达式验证超链接以导出到 Excel
我有一个从用户那里获取输入的 Web 应用程序,通常采用文件路径、超链接或文件共享的形式,但并非总是如此。用户可以输入“\my.fileshare.com”、“ http://www.msdn.com ”或“在我的文件柜中”。这些输入被导出到 Excel 文件。但是,如果输入的形式是“\look on my desk”或“ http://here it is”(注意空格),则在导出并打开文件后,Excel 会引发描述性错误消息的,我引用,“错误”。
我在现有代码中添加了一个正则表达式验证器到用户输入和编辑这些位置的文本框。因为存在大量现有条目,验证器需要尽可能具体,并且只丢弃输入导致 Excel 导出中断。例如,“\Will Work”将起作用,“Will Work”也将起作用,“\This\will also work”。我需要一个正则表达式,如果字符串以 \、http://、https://、ftp://、ftps:// 开头,则服务器或文件共享名称中没有空格,如果有不要以\、http://、https://、ftp://、ftps://开头,不管怎样都可以。
我已经能够写出第一部分 ^(\\)[^ \]+(\. ) $|^(((ht|f)tp(s)?)://)[^ /]+( /. ) $
但我不知道如果它不以 \、http://、https://、ftp://、ftps:// 开头,该怎么说忽略所有内容。
c++ - 带有 Eclipse 的 C++ 没有工具链?
我有一个必须在 Linux 上构建的 C++ 项目,但我没有设置 Linux 机器来运行任何类型的 GUI(它们都没有监视器)。所以问题是,我可以使用 eclipse 通过文件共享进行开发并通过 SSH 构建吗?我一直在这样做,除了在上面加了很多磨损之外,alt+tab
唯一的问题似乎是自动完成功能无法正常工作。根据我收到的错误消息,我认为这是没有连接编译器或包含目录的结果。
有没有人有使用这种设置的经验?
人们似乎正在关注我的问题中的“如何让事情变得无缝”。我更感兴趣的是“如何让 Eclipse 的编辑工作完全正常”这一点。
所有建议的解决方案都相当于“准备在 Linux 上开发”比问题更糟糕(问题主要是一个新生问题,如果我愿意,我可以解决它)
iphone - 获取 iPhone 应用程序的特定 IP 位置
我已经通过以下链接
http://zachwaugh.com/2009/03/programmatically-retrieving-ip-address-of-iphone/
我也试过这个(但苹果不承认)。
http://appsamuck.com/day4.html
我只想要当用户点击“wifi”按钮时。
存储在文档目录中的报告可以由其他电脑使用 wifi 使用我在我的 iPhone 应用程序上显示的 IP 访问。这怎么可能?