通过我的Android程序,我写了一个这样的文件:
String file = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Files/hello.txt";
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.write(str+"\n"); \\yeah string has a value there
writer.close();
Run Code Online (Sandbox Code Playgroud)
现在,当我进入Android的"Astro"文件浏览器时,我可以看到文件hello.txt,/mnt/sdcard/Files但是当我在Windows中安装sdcard时,我只能看到该文件夹中有4个其他文件而不是hello.txt.
在Windows本身,我甚至试图取消选中隐藏隐藏文件选项,以确保文件不被隐藏,但它只是不可见.
我甚至试图在SD卡的根目录中写入文件,但同样的问题.现在我很惊讶我怎么可能在Android中看到该文件而在Windows中却看不到.在Android中我甚至检查了文件内容,一切看起来都很好.
可能是什么问题呢?我写错文件的方式是什么?
PS:是的,android.permission.WRITE_EXTERNAL_STORAGE添加了Manifest权限.
我使用注册表和键创建了一个新的Windows shell上下文菜单项
HKLM\Software\Classes\Folder\shell\appname
HKLM\Software\Classes\Folder\shell\appname\command
Run Code Online (Sandbox Code Playgroud)
现在我想为这个命令添加一个图标.我怎么做的?
这个问题困扰了我很长一段时间,这真的很烦人.
每次我在重新启动/重启后登录时,资源管理器都需要一些时间才能显示.我已经采取了等待所有服务启动然后我登录的步骤,但它没有任何区别.结果始终相同:即使应用程序已启动,某些图标也不会显示.
我已经挖了一些代码,让一个应用程序"粘贴"在那里的一个图标,但是有一个API调用可以执行,所以资源管理器重新读取所有图标信息?像无效或重绘或类似的东西?
显然,看起来乔恩是对的,这是不可能做到的.
我遵循了Bob Dizzle和Mark Ransom代码并构建了这个(Delphi Code):
procedure Refresh;
var
hSysTray: THandle;
begin
hSysTray := GetSystrayHandle;
SendMessage(hSysTray, WM_PAINT, 0, 0);
end;
function GetSystrayHandle: THandle;
var
hTray, hNotify, hSysPager: THandle;
begin
hTray := FindWindow('Shell_TrayWnd', '');
if hTray = 0 then
begin
Result := hTray;
exit;
end;
hNotify := FindWindowEx(hTray, 0, 'TrayNotifyWnd', '');
if hNotify = 0 then
begin
Result := hNotify;
exit;
end;
hSyspager := FindWindowEx(hNotify, 0, 'SysPager', '');
if hSyspager = 0 then
begin
Result := hSyspager;
exit;
end; …Run Code Online (Sandbox Code Playgroud) 有没有办法(键盘快捷键?)在Windows资源管理器中打开当前打开的文件的文件夹?
我的意思是:当在IntelliJ中打开java源文件时,我想在包含该文件的文件夹上打开Windows资源管理器.这样做有一个简短的方法吗?
我有一个简单的Java程序,它读取文件目录并输出文件列表.我按名称对文件进行排序:
String [] files = dirlist.list();
files = sort(files);
Run Code Online (Sandbox Code Playgroud)
我的问题是它以不同于Windows资源管理器的方式按名称排序.
例如,如果我有这些文件:abc1.doc,abc12.doc,abc2.doc.
Java会像这样排序:
abc1.doc
abc12.doc
abc2.doc
Run Code Online (Sandbox Code Playgroud)
当我在Windows资源管理器中打开文件夹时,我的文件排序如下:
abc1.doc
abc2.doc
abc12.doc
Run Code Online (Sandbox Code Playgroud)
如何让Java在Windows资源管理器中对文件进行排序?这是Windows的伎俩吗?
我有一个应用程序,可以选择在文件所在的文件夹中显示所选文件.我的问题是,我该如何实现这一目标?
为了澄清,如果我的程序中的用户选择了"Test.txt"文件,那么我想要弹出一个Windows资源管理器窗口并突出显示用户选择的文件.您可以在LimeWire和uTorrent中看到类似的行为.如果在这些程序中选择一个文件并选择"在文件夹中显示",则会弹出一个Windows资源管理器窗口,其中突出显示并选择了该文件.我试图复制这种行为.
我尝试使用以下行:
System.Diagnostics.Process.Start("Explorer");
Run Code Online (Sandbox Code Playgroud)
这将弹出Windows资源管理器窗口,但是,它似乎总是在"我的文档"文件夹中打开.
在C#中重命名文件夹时,如果(Windows 7)资源管理器窗口当前打开了该文件夹或任何子文件夹,则System.IO.Directory.Move抛出System.IO.IOException("拒绝访问"消息).使用命令行也RENAME失败了.使用第二个浏览器窗口成功.
即使在折叠父文件夹(或其父文件夹)后,该错误仍然存在.实际上,需要关闭特定的资源管理器窗口.因此,探险家似乎只是为了显示文件夹结构而创建一些锁,即使实际文件夹不再显示也不会释放它们(这是纯粹的非文本IMO).
有没有办法重命名文件夹(在程序中,例如使用C#),目前由资源管理器窗口显示(或可见,见上文)?
更新
找到了我自己对这个问题的回答(见下文)所描述的方法SHFileOperation().但是,这种解决方案不太可行(另见下文).
由于科迪灰色提到回答我的其他问题时,在这里,雷蒙德陈谈论覆盖图标怎么都一个糟糕的选择在这里(请注意,文章是一岁).
反叠加的实质性论点是,一次只能显示一个......所以,如果两个适用,哪一个获胜?一个似是而非的论点是,只有15个 - 我认为这是微软的设计选择,而不是反对其功效的论据.
随着文件拓扑的变化:
我相信文件和文件夹需要等效的状态指示器才能立即识别其状态.
什么是图标叠加的替代方法,它在文件/文件夹的状态上呈现相同的即时可视队列?也许需要一个新的图标模型?
编辑:
2010-12-14
我越是想到这一点,我就越觉得只有一个叠加层并且无法使叠加层一起工作的想法是荒谬的.
除非出于技术原因,否则您不能有多个叠加层?
考虑(在我的头顶):
我正在调试我的应用程序,它在Visual Studio 2010中具有拖放功能.我必须以特权模式运行IDE,因为我的一些项目需要这样做.
我的问题:
我可以在正常运行.exe文件时拖放(从Windows资源管理器(WE)运行),但在VS2010中进行调试时,我无法在我的应用程序和WE之间进行拖放操作.
我试图在特权模式下打开WE,但仍然无法调试.
你有同样的问题吗?如果你这样做,你有任何解决方法吗?请分享.
privileges drag-and-drop windows-explorer visual-studio-2010
我想在Windows的文件属性对话框中显示一些指定类型的其他信息.例如,为*.txt文件添加新选项卡"摘要",并显示单词数,行数等.
我可以使用C++和C#.但是文件摘要是由.NET库收集的,所以我更愿意尽可能地将此任务委托给.NET.
windows-explorer ×10
windows ×4
.net ×2
c# ×2
icons ×2
java ×2
android ×1
c++ ×1
directory ×1
filewriter ×1
privileges ×1
registry ×1
rename ×1
shell ×1
shell-icons ×1
system-tray ×1
systray ×1